【问题标题】:GCC -Bprefix in CmakeCmake 中的 GCC -Bprefix
【发布时间】:2018-04-04 15:26:19
【问题描述】:

我需要在编译项目时使用“-B”前缀。我用一个小的 hello world 程序运行了一个测试,但是我现在需要将它合并到一个大型项目的 CMakeLists 文件中。该项目使用 C、C++ 和 Fortran 代码。我需要所有语言的相同前缀。我应该如何指定?

【问题讨论】:

    标签: c++ c cmake 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_FLAGSCMAKE_CXX_FLAGSCMAKE_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 这样的东西:不同的语言通常需要不同的标志。
    猜你喜欢
    • 2011-09-14
    • 2011-02-06
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2013-05-08
    • 2019-02-21
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多