Cmake 中的 GCC -Bprefix
Posted
技术标签:
【中文标题】Cmake 中的 GCC -Bprefix【英文标题】:GCC -Bprefix in Cmake 【发布时间】:2018-04-04 15:26:19 【问题描述】:我需要在编译项目时使用“-B”前缀。我用一个小的 hello world 程序运行了一个测试,但是我现在需要将它合并到一个大型项目的 CMakeLists 文件中。该项目使用 C、C++ 和 Fortran 代码。我需要所有语言的相同前缀。我应该如何指定?
【问题讨论】:
【参考方案1】:可以设置对应的CMAKE_<LANG>_FLAGS
变量,比如
set(PREFIX "your prefix")
set(CMAKE_C_FLAGS "-B$PREFIX")
set(CMAKE_CXX_FLAGS "-B$PREFIX")
set(CMAKE_Fortran_FLAGS "-B$PREFIX")
或者,如果您希望将此标志附加到现有标志,请执行
set(CMAKE_C_FLAGS "$CMAKE_C_FLAGS -B$PREFIX")
set(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS -B$PREFIX")
set(CMAKE_Fortran_FLAGS "$CMAKE_Fortran_FLAGS -B$PREFIX")
请参阅 CMAKE_C_FLAGS、CMAKE_CXX_FLAGS 和 CMAKE_Fortran_FLAGS 的文档。
在我看来,应该有更直接和 CMake-ish 的方式来执行此操作,例如,可能将 CMAKE_PROGRAM_PATH
变量设置为 $PREFIX
或类似的东西,但我不确定。
【讨论】:
我在谷歌搜索时找不到“CMAKE_FORTRAN_FLAGS”。感谢那。另外,我觉得应该是类似 CMAKE_FLAGS 的东西,它为所有语言设置标志,但我找不到它。 @bremen_matt 实际上是CMAKE_Fortran_FLAGS
,我终于在文档中找到了这个:cmake.org/cmake/help/v3.11/envvar/…。我认为不存在像 CMAKE_FLAGS
这样的东西:不同的语言通常需要不同的标志。以上是关于Cmake 中的 GCC -Bprefix的主要内容,如果未能解决你的问题,请参考以下文章