gpt4 book ai didi

c++ - AIX CMakeTest 没有添加正确的 -lpthread

转载 作者:行者123 更新时间:2023-11-28 05:57:27 31 4
gpt4 key购买 nike

我正在尝试使用 CMake 来编译我的项目。我依赖于 pthread 库。

在我的 CMakeFile 上,我尝试了很多不同的选项

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lpthreads")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -lpthreads")
set(CMAKE_THREAD_LIBS_INIT "-lpthreads")
find_package(Threads REQUIRED)

但是在 CheckSymbolExists 步骤中它没有添加 -lpthread 标志:

/usr/vacpp/bin/cc   -qthreaded -qalias=noansi -qhalt=e     CMakeFiles/cmTryCompileExec2302980897.dir/CheckSymbolExists.c.o  -o cmTryCompileExec2302980897 -Wl,-brtl,-bnoipath,-bexpall -Wl,-blibpath:
/opt/freeware/lib:/usr/lib:/lib

我直接使用 cc 在单独的文件上进行了测试,-qthreaded 不起作用,但 -lpthread 起作用。 CMake 是否有标志将 -lpthread 添加到 CheckSymbolExists 步骤?

最佳答案

您必须使用 target_link_libraries 并将其应用到您的可执行文件中。使用 boost::threads 的项目的简单示例:

include_directories(
${CMAKE_SOURCE_DIR}/src
)
include_directories( SYSTEM
${Boost_INCLUDE_DIRS}
)
link_directories(
${Boost_LIBRARY_DIRS}
)
add_executable( MyProgram
${CMAKE_SOURCE_DIR}/src/main.cpp
${CMAKE_SOURCE_DIR}/src/my_program.cpp
)
target_link_libraries( MyProgram
${Boost_LIBRARIES}
pthread
)

关于c++ - AIX CMakeTest 没有添加正确的 -lpthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870803/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com