【问题标题】:Mixed language C++, C and Fortran compilation with Cmake使用 Cmake 进行混合语言 C++、C 和 Fortran 编译
【发布时间】:2012-11-19 21:44:53
【问题描述】:

在 GNU/Linux 上使用 g++gccgfortran,我编写了一个简单的脚本来编译和链接许多用 C++、C 和 Fortran 编写的源代码文件。以下是脚本的完整内容。该脚本已经过测试,运行良好。

g++ -c test-Q.cpp -I./boost/boost_1_52_0/ -g
 gcc -c paul2.c -g
 gcc -c paul2_L1.c -g
 gcc -c paul6.c -g
 gcc -c paul6_L1.c -g 
 gcc -c fit_slope.c -g
 gfortran -c getqpf.F -g
 g++ -o test-Q test-Q.o paul2.o paul2_L1.o paul6.o paul6_L1.o fit_slope.o getqpf.o -g -lgfortran

为了使其更跨平台,我想使用 Cmake 重新编写脚本。如何处理混合语言编译?

下面列出的以下测试脚本不起作用,只会选择性地编译部分文件。

是否有可能更适合这种类型的编译的另一个跨平台构建过程?

cmake_minimum_required (VERSION 2.6)
project (q-test)

include_directories(/media/RESEARCH/SAS2-version2/test-Q/boost/boost_1_52_0)

add_executable( q-test
test-Q.cpp
paul2.c
paul2_L1.c 
paul6.c 
paul6_L1.c 
fit_slope.c
getqpf.F
) # end

【问题讨论】:

    标签: gcc g++ cmake gfortran


    【解决方案1】:

    您需要像这样为项目启用 Fortran:

    项目(q-test C CXX Fortran)

    此外,您可能希望使用 find_package(Boost) 而不是硬编码包含路径。

    【讨论】:

    • 谢谢比尔;这非常有效。使用 Cmake 时,我的脸上总是挂着灿烂的笑容,因为它让事情变得如此简单。令人惊奇的是它如何自动找到所需的一切。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多