我正在转换一个c-shell脚本,它构建了一些库并编译了一些Fortran和C程序;它大多运作良好(尽管我确定我并不完全遵循正确的惯例呢!)。不过,我有一个库,在shell脚本编译罚款,但不能下的CMake: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
属性但这似乎并没有工作,要么
嗯,我试着在'add_library'调用之前和之后设置'set(cmake_fortran_flags-fixed-line-length-132)'并且得到相同的错误 – ChrisW
@ChrisW:可以肯定:你使用正确的大写? ('CMAKE_Fortran_FLAGS') – Job
糟糕!我认为所有的CMake变量都是不区分大小写的(但我刚刚意识到只有命令名)!现在这个工作:)我不会假装理解为什么它是一个编译而不是一个链接标志:/ – ChrisW