我想编译一个简单的测试项目,支持Intel C++ Compiler
,CMake
和std::threads
。与cmake,icc和pthreads(linux)链接
如果我做的:
icpc -std=c++11 -lpthread source/main.cpp
然后构建和程序做工精细。
但随着CMake
我得到一个错误:
CMake Error at CMakeLists.txt:21 (TARGET_LINK_LIBRARIES):
Cannot specify link libraries for target "test" which is not built by
this project.
CMakeLists.txt
是:
project(test)
set (CMAKE_CXX_FLAGS "-std=c++11")
set(SOURCE_LIST "source/main.cpp")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} pthread)
add_executable (${PROJECT_NAME} ${SOURCE_LIST})
我建立在由icc
(compilervars.sh
)和CMake
提供的脚本中设置的环境中调用-DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc
选项。它工作,如果我不使用线程。
我使用CMake
有什么问题?
谢谢!
我认为你必须先声明可执行文件,然后设置链接库,否则'target_link_libraries'不知道可执行文件(在你的情况下是'test')和投诉。 –