是否有一种方法在混合C++和Fortran?时使用Clang编译器?
直到现在,我使用cmake和
project(mixing CXX Fortran)
但是这触发了g++
的使用。
- CXX编译器标识为GNU 6.2.0
我的项目与Fortran混合项目的CMakeLists.txt:
cmake_minimum_required(VERSION 3.7.0)
project(mixing CXX Fortran)
# SET UP ROOT https://root.cern.ch/how/integrate-root-my-project-cmake
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /opt/local/libexec/root6/etc/root/cmake)
find_package(ROOT REQUIRED COMPONENTS MATH MINUIT2)
include(${ROOT_USE_FILE})
include_directories(Experiment Theory ${ROOT_INCLUDE_DIRS})
add_executable(mixing main.cpp)
target_link_libraries(mixing ${ROOT_LIBRARIES})
无法工作,因为g++不能使用根库所需的Clang标志-stdlib=libc++
。
发布于 2018-08-11 15:27:49
您可以通过更改编译器来重写c/c++编译器,在这种情况下,C/C++编译器是C或CXX。
CC
和CXX
环境变量设置为覆盖CMAKE_C_COMPILER /CMAKE_CXX_COMPILER的默认值:CC=clang CXX=clang++ cmake
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++
set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++)
但是,在使用任何项目/enable_language指令之前,请确保在cmake文件的顶部执行此操作。
https://stackoverflow.com/questions/41468128
复制相似问题