Qt + cmake. Ошибка error LNK2019: ссылка на неразрешенный внешний символ
Пытаюсь скомпилировать самый простой пример Qt + cmake в c++, но он выдает ошибки. CMakeLists.txt:
cmake_minimum_required(VERSION 3.16)
project(HelloWorld)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_PREFIX_PATH "G:\\qt\\5.15.2\\mingw81_64\\lib\\cmake")
# включаем поиск библиотек с использованием find_package()
# через REQUIRED указываем, что библиотеки обязательны
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
set(SOURCE_FILES main.cpp)
add_executable(HelloWorld ${SOURCE_FILES})
# указываем, какие библиотеки необходимо подключить
target_link_libraries(${PROJECT_NAME} Qt5::Core)
target_link_libraries(${PROJECT_NAME} Qt5::Gui)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
main.cpp:
#include <QApplication>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
using namespace std;
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget widget;
widget.resize(640, 480);
widget.setWindowTitle("Hello, world!!!");
QGridLayout *gridLayout = new QGridLayout(&widget);
QLabel * label = new QLabel("Hello, world!!!");
label->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
gridLayout->addWidget(label);
widget.show();
return app.exec();
}
Компиляция:
cmake --build . --config Release
CMake is re-running because E:/g++/тесты/test/build/CMakeFiles/generate.stamp is out-of-date.
the file 'E:/g++/тесты/test/CMakeLists.txt'
is newer than 'E:/g++/тесты/test/build/CMakeFiles/generate.stamp.depend'
result='-1'
-- Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.22631.
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: E:/g++/тесты/test/build
MSBuild version 17.5.1+f6fdcf537 for .NET Framework
main.cpp
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: __cdecl QString::~QStri
ng(void)" (__imp_??1QString@@QEAA@XZ) в функции main. [E:\g++\тесты\test\build\HelloWorld.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) private: static struct QTypedAr
rayData<unsigned short> * __cdecl QString::fromAscii_helper(char const *,int)" (__imp_?fromAscii_helper@QString@@CAPEAU
?$QTypedArrayData@G@@PEBDH@Z) в функции main. [E:\g++\тесты\test\build\HelloWorld.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: __cdecl QApplication::Q
Application(int &,char * *,int)" (__imp_??0QApplication@@QEAA@AEAHPEAPEADH@Z) в функции main. [E:\g++\тесты\test\build\
HelloWorld.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: virtual __cdecl QApplic
ation::~QApplication(void)" (__imp_??1QApplication@@UEAA@XZ) в функции main. [E:\g++\тесты\test\build\HelloWorld.vcxpro
j]
. . .