【发布时间】:2016-11-25 10:04:15
【问题描述】:
我正在尝试使用Intel C++ Compiler、CMake 和std::threads 支持编译一个简单的测试项目。
如果我这样做:
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) 提供的脚本设置的环境中构建,并且使用-DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc 选项调用CMake。如果我不使用线程,它就可以工作。
我使用 CMake 有什么问题?
谢谢!
【问题讨论】:
-
我认为你必须先声明可执行文件,然后设置链接库,否则
target_link_libraries不知道可执行文件(在你的情况下为test)和投诉。
标签: c++ linux cmake libraries icc