获取CMake错误:无法为不是由项目构建的目标指定链接库

时间:2014-09-18 10:15:24

标签: cmake

我在我的代码中实现了CMake但是我收到了错误

  

“无法为目标”Qt5 :: Widgets“指定链接库,这些链接库不是由项目构建的”。

以下是CMakeLists.txt的内容:

#Specify the version being used aswell as the language
cmake_minimum_required(VERSION 2.6)

#Name your project here
project(eCAD)

#Sends the -std=c++11 flag to the gcc compiler
ADD_DEFINITIONS(-std=c++11)

#This tells CMake to main.cpp and name it eCAD
add_executable(eCAD main.cpp)


#include the subdirectory containing our libs
add_subdirectory (gui)
include_directories(gui)

#include Qt directories
find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Designer)
SET(QT_USE_QTDESIGNER ON)

#link_libraries
target_link_libraries(Qt5::Widgets Qt5::Core) 

4 个答案:

答案 0 :(得分:39)

除了接受的答案之外:一个重要的细节是在target_link_libraries add_executable行之后放置find_package ,所以所有链接的组件都是已知的。

答案 1 :(得分:18)

target_link_libraries的第一个参数是目标名称:

target_link_libraries(eCAD Qt5::Widgets Qt5::Core) 

答案 2 :(得分:1)

此外,请勿将目标名称与项目名称混淆:

  • 命令project指定一个项目名称,但是
  • 目标是使用add_executableadd_libraryadd_custom_target创建的目标。

错误消息是关于目标的。

答案 3 :(得分:0)

设置__COUNTER__之前先设置you_lib_name

target_link_libraries