gcc - 使用 Cmake 的混合语言 C++、C 和 Fortran 编译

标签 gcc g++ cmake gfortran

使用 g++ , gccgfortran在 GNU/Linux 上,我编写了一个简单的脚本来编译和链接许多用 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

最佳答案

您需要为项目启用 Fortran,如下所示:

项目(q-test C CXX Fortran)

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

关于gcc - 使用 Cmake 的混合语言 C++、C 和 Fortran 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462808/

相关文章:

C 对齐特定用例的字符串文字

C++ : Ask user input without pressing enter using assembly?

android studio 3.2初始构建错误(找不到testCCompiler.c文件,windows 10)

linux - 静态变量没有被初始化

performance - 如何建议gcc编译器更可能的分支

C++ 获取函数/方法的错位名称

C++ 外部对象数组

linux - Cpack header 文件夹目标

macros - CMake 宏 : how to iterate over arguments

Python 3.4 Winrandom 编译报错