cmake怎么编译.fortran文件
时间: 2023-11-27 11:54:23 浏览: 268
要使用CMake编译Fortran文件,需要在项目的根目录下创建一个`CMakeLists.txt`文件,并使用`project`命令指定项目名称和语言,如下所示:
```
cmake_minimum_required(VERSION 3.10)
project(MyFortranProject LANGUAGES Fortran)
add_executable(my_fortran_program my_fortran_file.f90)
```
在上述代码中,`add_executable`命令用于将Fortran源文件`my_fortran_file.f90`编译成可执行文件`my_fortran_program`。如果需要链接其他库文件,可以使用`target_link_libraries`命令添加链接库。
然后在终端中进入项目根目录,使用以下命令编译项目:
```
mkdir build && cd build
cmake ..
make
```
这将在`build`目录下生成可执行文件`my_fortran_program`。
相关问题
cmake编译Fortran生成cmakelist
### 编写用于编译 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")
```
这些指令允许自定义可执行文件与静态/动态链接库的目标存储地点,从而保持工作区整洁有序。
阅读全文