我在我的代码中实现了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)
答案 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_executable
,add_library
或add_custom_target
创建的目标。错误消息是关于目标的。
答案 3 :(得分:0)
设置__COUNTER__
之前先设置you_lib_name
target_link_libraries