C++ 如何在cmake中的源文件之后设置库标志?
我正在尝试使用hwloc和CMake编译一个项目。但是,在链接时,我会遇到大量未定义的引用错误:C++ 如何在cmake中的源文件之后设置库标志?,c++,c++11,cmake,C++,C++11,Cmake,我正在尝试使用hwloc和CMake编译一个项目。但是,在链接时,我会遇到大量未定义的引用错误: undefined reference to `hwloc_get_type_depth' undefined reference to `hwloc_bitmap_zero' [...] 根据一个类似的问题,旗帜的顺序很重要 那么,如何在CMake中生成这样的命令呢 g++-Wall-std=c++11 source.cpp-lhwloc 摘自my CMakeLists.txt: set(CMA
undefined reference to `hwloc_get_type_depth'
undefined reference to `hwloc_bitmap_zero'
[...]
根据一个类似的问题,旗帜的顺序很重要
那么,如何在CMake中生成这样的命令呢
g++-Wall-std=c++11 source.cpp
-lhwloc
摘自my CMakeLists.txt:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -lhwloc")
set(SOURCE_FILES source.cpp)
add_executable(source ${SOURCE_FILES})
非常感谢您的帮助
编辑:我的问题是作为的一个可能的副本提出的,但是我想添加的标志是针对库的链接,而不是像上面提到的问题那样的普通编译标志@Edgar Rokyan为我的问题提供了正确的答案。如果需要链接hwloc库,可以使用以下命令:
set(CMAKE_CXX_FLAGS“${CMAKE_CXX_FLAGS}-Wall-std=c++11”)\
set(CMAKE_CXX_FLAGS“${CMAKE_CXX_FLAGS}-Wall-std=c++11”)#可能的重复可能的重复非常感谢!这就解决了问题。我会尽快接受你的答复。非常感谢!这就解决了问题。我会尽快接受你的答复。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11") # <== remove *-lhwloc*
set(SOURCE_FILES source.cpp)
add_executable(source ${SOURCE_FILES})
target_link_libraries(source hwloc) # <== add this line