Получение ошибки 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) 

Ответ 1

Первым аргументом target_link_libraries является имя цели:

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

Ответ 2

В дополнение к принятому ответу: важной деталью является размещение target_link_libraries после строк add_executable и find_package, поэтому все связанные компоненты известны.

Ответ 3

Кроме того, не путайте имя цели с именем проекта :

  • команда project задает имя проекта, но
  • цель - это цель, созданная с помощью add_executable, add_library или add_custom_target.

Сообщение об ошибке касается цели.

Ответ 4

Установите you_lib_name перед настройкой target_link_libraries

set(you_lib_name libname)
target_link_libraries(you_lib_name Qt5::Widgets Qt5::Core)