Dll für Anfänger
-
Hallo alle,
nach dem ich mit Qt 5.0.2 unter WindowsXP kein glück hatte habe ich es nun unter Windows7 installiert und es geht.
Vorher hatte ich ne ältere Version installiert (4.8.4) und mich an dieses Tutorial gehalten:
http://youtu.be/ZewJ4iHQvXY
das ging. Nun also unter Windows7 und 5.0.2 das gleiche... Ich lasse das Ding bauen, aber es wird keine *.dll Datei erstellt.Hier der output vom Kompiler vielleicht kann da jemand schon was mit anfangen:
mingw32-make[1]: Entering directory 'C:/Qt/meine Projekte/Dll_2/build-dll_2-Desktop_Qt_5_0_2_MinGW_32bit-Debug'
g++ -c -pipe -fno-keep-inline-dllexport -g -Wall -Wextra -fno-rtti -fexceptions -mthreads -DUNICODE -DDLL_2_LIBRARY -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_CORE_LIB -DQT_NO_DYNAMIC_CAST -I..\dll_2 -I"......\Qt5.0.2\5.0.2\mingw47_32\include" -I"......\Qt5.0.2\5.0.2\mingw47_32\include\QtCore" -I"debug" -I"." -I"......\Qt5.0.2\5.0.2\mingw47_32\mkspecs\win32-g++" -o debug\dll_2.o ..\dll_2\dll_2.cpp
g++ -shared -mthreads -Wl,--out-implib,debug\liblibdll_2.a -o debug\libdll_2.a debug/dll_2.o -LC:\Qt\Qt5.0.2\5.0.2\mingw47_32\lib -lQt5Cored
mingw32-make[1]: Leaving directory 'C:/Qt/meine Projekte/Dll_2/build-dll_2-Desktop_Qt_5_0_2_MinGW_32bit-Debug'
20:06:25: Der Prozess "C:\Qt\Qt5.0.2\Tools\MinGW\bin\mingw32-make.exe" wurde normal beendet.
20:06:25: Verstrichene Zeit: 00:01.Wäre schön wenn da einer ne Idee zu hat. Werde nun Qt 4.8.4 unter Windows7 installieren und das gleiche probieren.
-
Ach shit,
schon wieder ne Sackgasse. Habe Qt 5.0.2 deinstalliert und Qt 4.8.4 installiert. Dann habe ich gemerkt (http://qt-project.org/forums/viewthread/22197 ) das ich ne alte mingw version brauche. In japan gabs eine:
http://en.sourceforge.jp/projects/sfnet_nasame2013/downloads/sources/MinGW-gcc440_1.zip/
Habs in C:\ entpackt. Dann noch den qt-creator-windows-opensource-2.7.0.exe installiert und mein altes Projekt geöffnet.
Nun das Problem:
"Es wurden keine gültigen Kits gefunden"
Mit den Einstellungen komme ich nicht klar. Hat da jemand ne Idee? -
So das war der letzte Versuch für heute.
Habe qt-creator-windows-opensource-2.7.0 deinstalliert und eine alte qt-creator-win-opensource-2.5.2 installiert. Dann die Pfade in den Einstellungen angepasst. Dann konnte ich mein altes Projekt öffnen und kompilieren:
00:40:47: Führe Schritte für Projekt calib_to_hex aus...
00:40:47: Starte "C:\Qt\4.8.4\bin\qmake.exe" "C:\Qt\meine Projekte\calib_to_hex\calib_to_hex.pro" -r -spec win32-g++ "CONFIG+=release"
00:40:47: Der Prozess "C:\Qt\4.8.4\bin\qmake.exe" wurde normal beendet.
00:40:47: Starte "C:\MinGW\bin\mingw32-make.exe"
C:/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directoryC:/Qt/meine Projekte/calib_to_hex-build-desktop-Qt_4_8_4__4_8_4__Release' g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_LARGEFILE_SUPPORT -DCALIB_TO_HEX_LIBRARY -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\4.8.4\include\QtCore" -I"..\..\4.8.4\include" -I"..\..\4.8.4\include\ActiveQt" -I"release" -I"..\calib_to_hex" -I"." -I"..\..\4.8.4\mkspecs\win32-g++" -o release\calib_to_hex.o ..\calib_to_hex\calib_to_hex.cpp g++ -Wl,-s -mthreads -shared -Wl,--out-implib,release\libcalib_to_hex.a -o release\calib_to_hex.dll release/calib_to_hex.o -L"c:\Qt\4.8.4\lib" -lQtCore4 Creating library file: release\libcalib_to_hex.a mingw32-make[1]: Leaving directory
C:/Qt/meine Projekte/calib_to_hex-build-desktop-Qt_4_8_4__4_8_4__Release'
00:40:48: Der Prozess "C:\MinGW\bin\mingw32-make.exe" wurde normal beendet.Eine dll hat er mir trotzdem nicht ausgespuckt. Dann erstmal gute n8
-
Ok,
ich probiere es nun nochmal mit Qt 5.0.2. Alsoo,
- Neu::Bibliotheken::C++Bib
- Dynamisch gebunden, Name: Dll_2, Ordner: C:\Qt\meine Projekte\Dll_2
Als Vorgabe für Projektordner->Nein (normal liegen se wo anders) - Kitauswahl->Harken und Pfade belassen wie se sind
- Module->QtCore only
- Details->belassen wie vorgeschlagen
- so belassen -> Abschließen
dll_2.cpp :
@
void test()
{
qDebug() << "Test der DLL";
}
@dll_2.h:
@
#include <QDebug>
void DLL_2SHARED_EXPORT test();
@Erstellt mit Strg+B ... und siehe da eine dll liegt im Ordner:
C:\Qt\meine Projekte\Dll_2\build-Dll_2-Desktop_Qt_5_0_2_MinGW_32bit-Debug\debug\Dll_2.dllSo ok, habe keinen Plan was vorher schief gelaufen ist. Könnte es daran gelegen habe das ich ehemals versucht habe ein Projekt aus Qt 4.x zu öffnen und zu bauen? Vielleicht sind da dann Pfade verstellt worden? Ich werde wohl lieber mein altes Projekt per copy+paste in ein neues frisches Qt 5 verwandeln. Oder wie geht man da am besten vor?
Gruss
Elmar -
Ich kann nur mutmassen. Eventuell wurde qmake nicht oder nicht richtig ausgeführt. Das kommt vielleicht wenn du ein "altes" .pro-file öffnest, oder auch nicht.
Neulich hat mich der creator (oder qmake) reingelegt. Ich habe mein release exe unter bla-shadow-Debug/release gefunden. Nachdem ich manuell ein "run qmake" gemacht habe, war alles ok.
Ich habe es als Mysterium, mit dem ich leben kann, abgehakt. ;-) -
Obwohl ich Qt 4.8.4 vorher deinstalliert habe steht in den Einstellungen::Einstellung und Ausführung::Qt Versionen auch noch der C:\Qt\4.8.4\qmake\qmake.exe drin.
D.h. diese Info hat die Deinstallation überlebt - komisch.
Klick ich auf bereinigen ist es wech. Nun ist alles gut ;-)