AIX CMakeTest 没有添加正确的 -lpthread
AIX CMakeTest does not add correct -lpthread
我正在尝试使用 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
)
我正在尝试使用 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
)