statisch kompilieren

Alles rund um die Programmierung mit Qt
AHUser
Beiträge: 27
Registriert: 29. Juni 2005 17:45

Beitrag von AHUser »

klogg hat geschrieben:Ich hab gelesen, dass man die OpenSource Version
nur mit dem MinGW-Compiler kompilieren kann.
Das Q...Win32/Free Projekt beschäftigt sich schon seit dem Erscheinen von Qt 4.0.0 mit dem Support für msvc 6, 7 und 8 sowie des bcc32 (BCB5/6). Und es gibt bereits einen Patch für Qt 4.0.1. Der ist im Moment aber nur in der Mailingliste herumgegangen, weil das CVS noch nicht auf Qt 4.0.1 umgestellt wurde.
Ich möchte doch so gerne endlich statisch kompilierte Programme :?
Wenn du Qt 4 nun aber mit msvc kompilierst, dann kannst du deine Programme nicht mehr mit mingw kompilieren, weil die lib Dateien nun mal keine .a Dateien sind und das Namemangling der beiden Compiler auch nicht zusammen passt.
Andreas
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Haste es mal mit einer anderen Version des compilers versucht?
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Laut dem englischen Forum http://www.qtforum.org/thread.php?threa ... 6ce42d8208
geht das mit dem MS Compiler auch nicht und soll ein Bug sein, der in 4.1 behoben ist. Du kann es ja mal mit der snapshotversion von 4.1 versuchen.
AHUser
Beiträge: 27
Registriert: 29. Juni 2005 17:45

Beitrag von AHUser »

BartSimpson hat geschrieben:Laut dem englischen Forum http://www.qtforum.org/thread.php?threa ... 6ce42d8208
geht das mit dem MS Compiler auch nicht und soll ein Bug sein, der in 4.1 behoben ist. Du kann es ja mal mit der snapshotversion von 4.1 versuchen.
Also mit dem Borland Compiler ging das ohne Probleme (vorausgesetzt man hat den acs4qt401 Patch installiert)

Man kann mit dem acs4qt401 Patch auch C++BuilderX Projektdateien erzeugen (qmake -spec win32-borland -tp cbx mypro.pro). Und der C++BuilderX Personal gibt es kostenlos zum Download (300 MB).
Andreas
klogg
Beiträge: 129
Registriert: 5. September 2005 17:00
Wohnort: Hann. Münden

Beitrag von klogg »

Freut mich sehr, dass es hier mal wieder was neues gibt!

Nun gut, ich habe mir also mal einen Snapshot runtergeladen,
wieder "configur -static" und dann "make" aufgerufen:


.
.
.
g++ -c -g -g -Wall -frtti -fexceptions -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_
EDITION_DESKTOP -DQT_BUILD_CORE_LIB -DQT_USE_BACKINGSTORE -DQT_MAKEDLL -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_DLL -I"C:/Qt/4
.1.0-snapshot-20051002/include" -I"C:/Qt/4.1.0-snapshot-20051002/include/QtCore" -I"tmp" -I"C:/Qt/4.1.0-snapshot-2005100
2/src/corelib/global" -I"..\3rdparty\zlib" -I"C:/Qt/4.1.0-snapshot-20051002/include/ActiveQt" -I"tmp\moc\debug_shared" -
I"." -I"C:/Qt/4.1.0-snapshot-20051002/mkspecs/win32-g++" -o tmp\obj\debug_shared\qcoreapplication.o kernel\qcoreapplicat
ion.cpp
kernel\qcoreapplication.cpp: In static member function `static QStringList QCoreApplication::arguments()':
kernel\qcoreapplication.cpp:1450: error: invalid conversion from `WCHAR*' to `const ushort*'
kernel\qcoreapplication.cpp:1450: error: initializing argument 1 of `static QString QString::fromUtf16(const ushort*,
int)'
mingw32-make[3]: *** [tmp\obj\debug_shared\qcoreapplication.o] Error 1
mingw32-make[3]: Leaving directory `C:/Qt/4.1.0-snapshot-20051002/src/corelib'
mingw32-make[2]: *** [debug-all] Error 2
mingw32-make[2]: Leaving directory `C:/Qt/4.1.0-snapshot-20051002/src/corelib'
mingw32-make[1]: *** [sub-corelib-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `C:/Qt/4.1.0-snapshot-20051002/src'
mingw32-make: *** [sub-src-make_default-ordered] Error 2

C:\Qt\4.1.0-snapshot-20051002>



Scheint leider auch nicht zu funktionieren.
Bentze ich "configure" (ohne static) passiert genau das selbe.

HENNING

PS: 4.1.0-snapshot-20051002 + MinGW
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Hm dann scheint der ein Fehler zu haben. Dann versuche doch mal einen älteren.
klogg
Beiträge: 129
Registriert: 5. September 2005 17:00
Wohnort: Hann. Münden

Beitrag von klogg »

Ich hatte befürchtet, dass sowas kommt :wink:
Hat genau so wenig geklappt.
Aber ich denke, wenn im neuesten Snapshot ein solcher Fehler steckt,
dann steckt er auch in älteren Versionen.

Allerdings konnte ich den Snapshot ja gar nicht kompilieren.
Auch nicht ohne -static.

Nutzt denn hier jemand die neuen Snapshots?
Und womit habt ihr die erstelle? Unter Windows versteht sich...
Jetzt bin ich aber gespannt.

HENNING
MatthieuRiolo
Beiträge: 28
Registriert: 13. März 2005 09:21

Beitrag von MatthieuRiolo »

Hey

Ich gestern gerade über das gleiche Problem mit dem Statischen linken gestossen. Nun bevor ich Mist baue frag ich lieber mal wie ich das unter Mac mache. Wie sehen dann später die Compilier schritte auf um ein eigenes Projekt zu compilieren? Die werden ja dann hofffentlich ned alle statisch gelinkt?!


MfG Matthieu
Es fällt mir nichts ein
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

doch, wenn du nur die statische hast. Aber du kannst ja beide bauen.
MatthieuRiolo
Beiträge: 28
Registriert: 13. März 2005 09:21

Beitrag von MatthieuRiolo »

Ich zitiere mich "Bevor ich Mist baue frag ich ..." ;) im moment habe ich das "normale" installiert. Wenn ich noch das Configure -static mache wird dann das alles auch noch statisch compiliert? UNd wie kann ich dann beim Projekt compilieren sagen ob statisch oder nicht?

PS: Vorsicht freiläufiger NOOP
Es fällt mir nichts ein
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Das hängt nur davon ab, wogegen du dein Projekt linkst. Entweder gegen die dynamische oder die statische (-lxxx.a) xxx=Name der Bibliothk.
MatthieuRiolo
Beiträge: 28
Registriert: 13. März 2005 09:21

Beitrag von MatthieuRiolo »

Also wennn ich das richtig sehe so?
qmake -project
qmake
make -lstat.a/-ldyn.a

?
Es fällt mir nichts ein
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

nee das .a nur für die statische Version.
MatthieuRiolo
Beiträge: 28
Registriert: 13. März 2005 09:21

Beitrag von MatthieuRiolo »

../../../src/corelib/global/qglobal.h:40:28: QtCore/qconfig.h: No such file or directory
../../../src/corelib/global/qglobal.h:934:6: #error "Qt not configured correctly, please run configure"
make[2]: *** [release-static/moc.o] Error 1
make[1]: *** [sub-tools-moc-make_default-ordered] Error 2
make: *** [sub-src-make_default-ordered] Error 2
:'(

Also bei mir war schon QT installiert. Dann habe ich einfach ./configure -static gemacht und die anderen installier schritten. Nur kommt bei mir diese Fehler meldung :( muss ich das ganze deinstallieren? Wenn ja wie?
Es fällt mir nichts ein
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

er scheint mit den Pfaden nicht zurecht zu kommen:(
Antworten