Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将CMake用于Fortran和C++;?_Cmake_Fortran - Fatal编程技术网

如何将CMake用于Fortran和C++;?

如何将CMake用于Fortran和C++;?,cmake,fortran,Cmake,Fortran,我是CMake的新手,似乎很难让我的脚本工作。我的代码可以用通常的方式编译,但我确实需要使用CMake。我用以下资料汇编: g++ vectc.cpp -c -std=c++11 gfortran vectf.f vectc.o -lstdc++ 这个CMakeLists.txt对我不起作用: cmake_minimum_required (VERSION 2.6) project (add_vectors CXX Fortran) enable_language(Fortran) set(C

我是CMake的新手,似乎很难让我的脚本工作。我的代码可以用通常的方式编译,但我确实需要使用CMake。我用以下资料汇编:

g++ vectc.cpp -c -std=c++11
gfortran vectf.f vectc.o -lstdc++
这个CMakeLists.txt对我不起作用:

cmake_minimum_required (VERSION 2.6)
project (add_vectors CXX Fortran)
enable_language(Fortran)
set(CMAKE_CXX_FLAGS "-c -std=c++11")
set(CMAKE_Fortran_FLAGS "CMakeFiles/executable/vectc.o -lstdc++")
add_executable( executable
vectc.cpp
vectf.f)
如果我在cmake之后运行make,我会得到以下结果,我真的不知道该怎么办:

[ 33%] Linking CXX executable executable
c++: warning: CMakeFiles/executable.dir/vectf.f.o: linker input file unused because linking not done
c++: warning: CMakeFiles/executable.dir/vectc.cpp.o: linker input file unused because linking not done
[100%] Built target executable
有人能帮我吗

编辑:
评论显示,我问得不好。我对Cmake很陌生,我不知道为什么会收到警告。此外,我还没有找到我的“可执行”文件

将我之前的评论重新表述为回答:


对于混合语言源(CXX、Fortran),CMake使用CXX链接器,因为其链接器首选项高于Fortran链接器。但是由于fortran源代码中的程序语句,需要fortran链接器。通过
set\u属性(目标可执行属性LINKER\u LANGUAGE Fortran)
设置LINKER\u LANGUAGE属性会提示CMake选择正确的链接器。

怎么了?可执行文件是否未生成?我没有看到任何错误。您是否在询问可执行文件在哪里?您不需要在
CMAKE\u Fortran\u标志中使用
CMakeFiles/executable/vectc.o
,因为您在
add\u executable
步骤中指定了依赖项。我可能是CMAKE的新成员。我不知道为什么我得到了
c++:warning:CMakeFiles/executable.dir/vectf.f.o:linker输入文件未使用,因为链接未完成
和其他警告,加上我找不到可执行文件。