【发布时间】:2012-10-08 21:19:40
【问题描述】:
尽管 cmake 声称的很好,但它的文档似乎还有很多不足之处(除非我完全无法理解基础知识)。
我正在尝试为一组 fortran 程序编写一个 cmake 文件,这些程序还依赖于其他一些库(这些库已经为我的系统编译,但我也想为这些库创建一个 cmake 文件)。
我在网上示例中找到的很多命令都没有出现在官方文档中,这有点令人不安。例如,http://www.vtk.org/Wiki/CMakeForFortranExample 包含该行
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
然而,当我将它包含在我自己的 CMakeLists.txt 中时,我得到一个错误
Missing variable is:
CMAKE_fortran_COMPILER
我错过了什么?!
编辑:当前 CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
enable_language(fortran)
project(fortranTest)
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
编辑 2
我还没有弄清楚如何包含依赖库。
【问题讨论】:
-
在你做任何事情之前你
ENABLE_LANGUAGE(Fortran)了吗?我们成功地在一个非常大的 Fortran 流体动力学代码上使用了 CMake,几乎没有问题(无论如何都与 Fortran 相关)。 -
另外,您可以编辑您的帖子以包含您的 CMakeLists.txt 吗?错误在
fortran中有一个小写f,而您的示例行有一个大写F。此外,还有更好的方法来执行示例尝试使用该信息执行的操作,例如if(${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel")它可以保护您,以防可执行文件被命名为 fun(例如在使用ftn包装的 Cray 系统上)。 -
@tpg2114 是的,我愿意 - 我已经编辑了我的问题以显示我目前得到的内容
-
在
enable_language()调用中必须是Fortran而不是fortran。