如何在cmake中的源文件后设置库标志?

hsv*_*var 0 c++ cmake c++11

我正在尝试使用CMake使用hwloc编译项目.但是,链接时我收到大量未定义的引用错误:

undefined reference to `hwloc_get_type_depth'
undefined reference to `hwloc_bitmap_zero'
[...]
Run Code Online (Sandbox Code Playgroud)

根据对类似问题的回答,标志的顺序很重要.

那么,我如何在CMake中生成这样的命令?:

g++ -Wall -std=c++11 source.cpp-lhwloc

摘自我的CMakeLists.txt:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -lhwloc")

set(SOURCE_FILES source.cpp)
add_executable(source ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

编辑:我的问题,提出了作为一个可能重复这一块,但是我想补充的旗子是为似乎是在上面提到的问题的情况下对一个库,而不是链接正常编译标志.@Edgar Rokyan为我的问题提供了正确的答案.

Edg*_*jān 5

如果需要链接hwloc库,可以使用target_link_libraries命令:

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
Run Code Online (Sandbox Code Playgroud)