CMake - 如何避免在链接器命令行中使用CMAKE_CXX_FLAGS

7
我在使用cmake / gcc / Linux时遇到了问题。无论我怎么尝试,都不能从链接器行中删除CMAKE_CXX_FLAGS。当在链接模式下调用g++时,CMake会将它们传递下去。
我在CMAKE_CXX_FLAGS中添加了-fopenmp,但它不应该出现在链接行中,这样g++就不会链接到gomp(我正在使用英特尔的iomp5)。
编辑:我在CMakeLists.txt的开头试过以下内容,但没有帮助:
set(CMAKE_CXX_LINK_EXECUTABLE
    "<CMAKE_CXX_COMPILER>  <FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")

谢谢


重新定义 CMAKE_CXX_LINK_EXECUTABLE 应该会有帮助。请展示您尝试的内容(以 [mcve] 的形式)。此外,如同对类似问题提出的建议,您可以使用 COMPILE_FLAGS 属性来设置仅适用于编译器的选项。 - Tsyvarev
1个回答

6
原来
add_compile_options("-fopenmp")

避免将这些选项添加到链接器中。它并不能解决CMAKE_CXX_FLAGS出现在链接器行中的一般问题,但它解决了我目前遇到的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接