繁体   English   中英

混合C ++和Fortran

[英]Mixing C++ and Fortran

有没有办法在混合使用C ++和Fortran时使用Clang编译器?

到现在为止我使用cmake

project(mixing CXX Fortran)

但这会触发g++的使用。

- CXX编译器标识是GNU 6.2.0

我的项目的CMakeLists.txt与Fortran混合:

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 ++不能使用ROOT库所需的Clang标志-stdlib=libc++

您始终可以通过更改CMAKE_ <LANG> _COMPILER来覆盖c / c ++编译器,其中<LANG>在您的情况下是C或CXX。

  1. 您可以设置CCCXX环境变量以覆盖CMAKE_C_COMPILER / CMAKE_CXX_COMPILER的默认值:

CC=clang CXX=clang++ cmake

  1. 您可以在调用cmake时在命令行上设置这些:

cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++

  1. 您也可以直接在cmake文件中设置它们:

set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++)

但是,在使用任何project / enable_language指令之前,请确保在cmake文件的最顶部执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM