2017-10-05 5 views
0

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] 
+0

Sie haben mit 'Qt5 :: Widgets' verbunden, aber Sie scheinen auch auf' Qt5 :: Core' verlinken zu müssen. – nwp

+0

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

+0

Hat sich die Fehlermeldung überhaupt geändert? Haben Sie versucht herauszufinden, welche anderen Bibliotheken Qt möglicherweise benötigt? – nwp

Antwort

0

Irgendwie kein PATH auf das binäre Qt war. Ich habe den PATH hinzugefügt und das cmake-Projekt neu erstellt und es hat funktioniert. Es ging also nur um den Weg und die Versionen.