cmake编译Fortran生成cmakelist
时间: 2025-01-05 14:34:41 浏览: 83
### 编写用于编译 Fortran 项目的 `CMakeLists.txt`
为了创建一个能够成功编译 Fortran 项目的 `CMakeLists.txt` 文件,需要遵循特定的语法和结构。以下是构建单个 Fortran 可执行文件所需的最小化配置:
#### 单一源文件项目
对于简单的单一源文件项目,可以采用如下方式定义 `CMakeLists.txt`:
```cmake
# 设置最低版本需求并启用新特性支持
cmake_minimum_required(VERSION 3.5)
# 定义工程名称及其默认语言环境
project(FortranExample LANGUAGES Fortran)
# 添加可执行目标,并指明其对应的源码位置
add_executable(fortran_example example.f90)
```
此脚本首先声明了 CMake 的最低兼容版本为 3.5 版本[^1]。
接着通过调用 `project()` 函数来初始化一个新的工程项目,这里特别指出使用的编程语言是 Fortran[^2]。
最后利用 `add_executable()` 命令告知 CMake 需要生成名为 `fortran_example` 的二进制文件,它由位于当前路径下的 `example.f90` 文件编译而来[^3]。
#### 复杂多模块项目
当面对更复杂的多模块或多文件项目时,则需进一步扩展上述基础模板。假设存在多个相互依赖的不同功能模块以及主应用程序部分,此时可以在根目录下设置顶层 `CMakeLists.txt` 并引入各个子模块中的相应描述文件:
```cmake
# 设定所需最低版次
cmake_minimum_required(VERSION 3.5)
# 初始化项目基本信息
project(MultiModuleFortranProject LANGUAGES Fortran)
# 将各子目录加入构建过程
add_subdirectory(module1)
add_subdirectory(module2)
add_subdirectory(app)
```
而在每一个具体的子模块内(如 `module1/CMakeLists.txt`, `module2/CMakeLists.txt`),则应继续细化该层面上的具体实现细节,例如指定库或对象文件的生成规则等[^4]。
此外,在某些情况下可能还需要调整输出路径以便更好地管理最终产物的位置:
```cmake
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
set(LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/lib")
```
这些指令允许自定义可执行文件与静态/动态链接库的目标存储地点,从而保持工作区整洁有序。
阅读全文
相关推荐















