fortran的cmakelist的写法

这篇博客分享了如何在CLion中成功配置并运行一个大型Fortran项目。通过`cmake_minimum_required`和`project`指令初始化,结合`add_compile_options`设定编译选项,启用Fortran语言,并使用`add_executable`和`TARGET_LINK_LIBRARIES`链接目标文件,实现了项目的构建和执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cmake_minimum_required(VERSION 3.19)
project(study Fortran)
add_compile_options(-O3 -ffree-line-length-none -fdefault-integer-8 -finteger-4-integer-8 -freal-4-real-8 -fallow-argument-mismatch -std=legacy -fdec-format-defaults )
enable_language(Fortran)
add_executable(study main.f90)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} /Users/gzq/Desktop/projects/fortran/study/cklib.o /Users/gzq/Desktop/projects/fortran/study/dvode.o /Users/gzq/Desktop/projects/fortran/study/progress.o)

贴一个样本,根目录的设置我是在clion里面设置的:
在这里插入图片描述
这个大型fortran项目成功在clion中跑完。

### 编写用于编译 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") ``` 这些指令允许自定义可执行文件与静态/动态链接库的目标存储地点,从而保持工作区整洁有序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

graceful coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值