我正在使用 CMake 通过 GFortran 编译器来编译 fortran 代码。我想查看汇编程序文件,但我以前没有这样做过。运行 make 后我应该看到 .s 文件吗?
我已经在我的 CmakeLists 中启用了程序集
enable_language(ASM-ATT)
并且我使用了以下标志set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -save-temps -g -O0
来保存汇编程序文件构建后
-save-temps
选项可以正常工作。您可以通过 .s
或其他搜索工具找到带有 .S
扩展名(以及 not
find . -name *.s
)的程序集文件,但最有可能的是,它们位于 <build-dir>/CMakeFiles/<target-name>.dir
中。
此外,无需通过调用
enable_language(ASM-ATT)
来启用汇编语言。如果您的源代码树中已经有一些汇编文件,您应该这样做,这些文件将与 Fortran 文件一起编译。
填充编译选项的更好方法不是使用像
CMAKE_Fortran_FLAGS
这样的CMake变量,因为它适用于所有目标,而是调用特定于目标的命令:
add_executable(main)
target_sources(main PRIVATE <your sources>)
target_compile_options(main PRIVATE -save-temps <other options>)
当您通过
CMAKE_BUILD_TYPE指定构建类型时,会设置
-g
等其他选项:
cmake -DCMAKE_BUILD_TYPE=Debug ..