CMake存档标志

时间:2013-06-12 10:30:58

标签: cmake

我正在转换一个c-shell脚本,它构建一些库并编译一些Fortran和C程序;它大部分运作良好(虽然我确定我还没有完全遵循正确的惯例!)。但是,我有一个库可以在shell脚本中编译好,但不能在CMake下编译:

f95 -w -ffixed-line-length-132 -c mylib.for
ar cr myarchive.a mylib.o

生成.a文件。在我的CMakeLists.txt中,我得到了:

add_library(myarchive STATIC ${libsrc}/mylib.for)

我收到2个错误:

Error: Unexpected end of format string in format string at (1)
Error: Unexpected end of format string in format string at (1)

我可以通过不包含-ffixed-line-length-132标志在命令行上复制它,但我找不到如何将它包含在CMake中。文档有一个set(MAKE_LIBRARY_LINKER_FLAGS <STRING>)命令,我已经尝试过(并编辑为MAKE_ARCHIVE_LINKER_FLAGS),还有一个set_target_properties - 但似乎没有明确的第三个参数列表这个命令可以。有一个名为STATIC_LIBRARY_FLAGS的属性,但这似乎不起作用

1 个答案:

答案 0 :(得分:0)

由于缺少标志(-ffixed-line-length-132)是编译器标志(在示例中将其传递给f95 -c命令),您应该设置编译器标志而不是链接器标志。我从未使用过Fortran,但我认为正确的CMake变量是CMAKE_Fortran_FLAGS