AIXCMakeTest没有添加正确的-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在一个分离的文件上进行了测试,-qthread不起作用,但-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++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- AIXCMakeTest没有添加正确的-lpthread
- 我如何让qmake在链接阶段的-lpthread之后添加-lm ?