Um ehrlich zu sein, ich bin kein Fan von Qt Creator. Also habe ich mich für eine andere IDE wie CLion entschieden. Ich habe recherchiert und herausgefunden, dass Clion qmake nicht unterstützt, aber es ist möglich, ein Qt-Projekt mit cmake laufen zu lassen.Qt Projekt mit Cmake in CLion C++
Das ist mein CMakeList. CLion gibt mir keinen Fehler, wenn ich diese Make-Datei speichere.
cmake_minimum_required(VERSION 3.8)
project(Qt_CmakeTest)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
add_executable(Qt_CmakeTest ${SOURCE_FILES})
target_link_libraries(Qt_CmakeTest Qt5::Core Qt5::Widgets)
zu testen, ob es funktioniert ich eine einfache CPP erstellt.
#include <iostream>
#include <QApplication>
using namespace std;
int main(int argc, char **argv)
{
QApplication app(argc,argv);
return app.exec();
}
Ich versuchte es im Anschluss an diese Anweisungen How to configure CLion IDE for Qt Framework?
ich die cmake binär verwenden müssen zu implementieren, dass qt bietet. So stelle ich die CMake Option:
-DCMAKE_PREFIX_PATH=C:\Qt\Qt5.9.1\5.9.1\mingw53_32\lib\cmake
Aber wenn ich versuche, es zu kompilieren, es gibt mir diese Fehlermeldung:
"C:\Program Files\JetBrains\CLion 2017.2.2\bin\cmake\bin\cmake.exe" --build
C:\Users\Marcel\Desktop\Projekte\Qt\Qt-CmakeTest\cmake-build-debug --target Qt_CmakeTest -- -j 2
[ 50%] Linking CXX executable Qt_CmakeTest.exe
CMakeFiles\Qt_CmakeTest.dir/objects.a(main.cpp.obj): In function `main':
C:/Users/Marcel/Desktop/Projekte/Qt/Qt-CmakeTest/main.cpp:7: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
C:/Users/Marcel/Desktop/Projekte/Qt/Qt-CmakeTest/main.cpp:8: undefined reference to `_imp___ZN12QApplication4execEv'
C:/Users/Marcel/Desktop/Projekte/Qt/Qt-CmakeTest/main.cpp:7: undefined reference to `_imp___ZN12QApplicationD1Ev'
C:/Users/Marcel/Desktop/Projekte/Qt/Qt-CmakeTest/main.cpp:7: undefined reference to `_imp___ZN12QApplicationD1Ev'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [Qt_CmakeTest.exe] Error 1
CMakeFiles\Qt_CmakeTest.dir\build.make:99: recipe for target 'Qt_CmakeTest.exe' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/Qt_CmakeTest.dir/all' failed
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/Qt_CmakeTest.dir/rule' failed
Makefile:117: recipe for target 'Qt_CmakeTest' failed
mingw32-make.exe[2]: *** [CMakeFiles/Qt_CmakeTest.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/Qt_CmakeTest.dir/rule] Error 2
mingw32-make.exe: *** [Qt_CmakeTest] Error 2
ich verschiedene Versionen von Qt heruntergeladen, da Qt 5.9 verwendet Mingw 5.3 und CLion sagt, ich benutze Mingw 5.0 und am Anfang habe ich Qt 5.6 benutzt und Mingw 4.9 benutzt. Ich kann nicht wirklich herausfinden, warum es nicht funktioniert.
Ein sauberer CMake Körperbau sieht wie folgt aus
"C:\Program Files\JetBrains\CLion 2017.2.2\bin\cmake\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\Users\Marcel\Desktop\Projekte\Qt\Qt-CmakeTest
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Marcel/Desktop/Projekte/Qt/Qt-CmakeTest/cmake-build-debug
[Finished]
Sie haben mit 'Qt5 :: Widgets' verbunden, aber Sie scheinen auch auf' Qt5 :: Core' verlinken zu müssen. – nwp
aktualisiert die CMakeList. Funktioniert immer noch nicht. Habe auch versucht den Pfad mit set (CMAKE_PREFIX_PATH "C: /Qt/Qt5.9.1/5.9.1/msvc2017_64") zu setzen und verschiedene Versionen ausprobiert. (VS, mingw) – MNCODE
Hat sich die Fehlermeldung überhaupt geändert? Haben Sie versucht herauszufinden, welche anderen Bibliotheken Qt möglicherweise benötigt? – nwp