我想編譯一個簡單的測試項目,支持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')和投訴。 –