Gebäude mit qmake auf Linux -, wie um zu verhindern, dass qmake von Links zu QtCore und QtGui
Habe ich eine shared-library (ohne QT-Abhängigkeit) [Bibliothek B] mit Verknüpfungen zu anderen shared library (ohne QT-Abhängigkeit) [Bibliothek].
Ich bin mit Qmake und QT Creator 1.3. Das problem ist, dass wenn ich Baue Bibliothek B und führen ldd auf die ausführbare Datei, es ist verbunden mit der QtCore-und QtGui, beide ziehen in eine Menge von nicht benötigten Dateien, das Ergebnis ist eine ausführbare Datei, die wird lange dauern, um zu laden, und hat unerwünschte Abhängigkeiten.
Habe ich versucht, einfach über alles zu stoppen qmake aus der Verlinkung der Bibliotheken-Bibliothek B.
Einen Ausschnitt aus meiner Projekt-Datei für die Bibliothek B ist unten dargestellt:
TEMPLATE = lib
LIBS += -L../datelib/bin -ldatelib_release
QT -= gui core
LIBS -= -lQtGui -lQtCore
CONFIG += dll
CONFIG += debug_and_release
CONFIG(debug, debug|release) {
TARGET =targetnameD
}else {
TARGET = targetname
}
Ich bin mit QtCreator 3 auf Ubuntu 9.10
QT ist version 4.5.2
InformationsquelleAutor Stick it to THE MAN | 2010-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen
CONFIG -= qt
in Ihr .pro Datei.Es funktioniert hier. Dies ist die Methode, die Sie für die Projekte in den Qt-Quellcode-Baum, der nicht linken gegen Qt. Im Allgemeinen, es funktioniert. Sehen
src/winmain/winmain.pro
in der Qt source-tree für ein Beispiel. Können Sie überprüfen: (1) Sie richtig ran qmake wieder und wieder aufgebaut und alles (tun eine völlig saubere bauen Sie nach dem ausführen von qmake). (2) Keiner der Bibliotheken verknüpfen Sie gegen sind selbst die Verlinkung gegen libQtCore oder libQtGui (z.B.datelib_release
muss nicht link gegen Qt).InformationsquelleAutor rohanpm
Können Sie versuchen, mit
Sehen und/oder zu löschen, die yourporjectname.pro.Benutzer-Datei.
das war das erste was ich Tat (vor dem posten meiner Frage), es machte keinen Unterschied.
Ah, sorry. Es war ein Schuss im Dunkeln - viele Menschen erkennen nicht, dass der *Benutzer-Dateien können auch Einfluss auf die resultierende build-Artefakte.
Die LIBS Linie wirklich notwendig? Ich meine, wenn ich nicht brauchen, die gui-Bibliotheken, QT -= gui ist genug, um zu deaktivieren -lQtGui.
InformationsquelleAutor gregseth
Für apps, tun Sie es wie diese:
Weitere Infos hier:
qmake gemeinsame Projekte
InformationsquelleAutor Ben
Hatte ich ähnliches problem.
Was ich Tat, war zu erstellen, die neue Bibliothek-Projekt mit aus der qtcore-und qtgui. Entfernt alle unnötigen Dateien, die erstellt wurde durch den Assistenten. Hinzugefügt meine Dateien zu Projekt-Ordner und modifizierte *.pro Datei. Es begann um korrekt zu arbeiten.
Es wurde ein problem mit QtCreator, es nicht richtig gelesen .pro-Datei generieren .pro.Benutzer, Hexe QtCreator erstellen und Assistenten generieren zu korrigieren .pro.Benutzer-Datei.
Habe ich diese mit Qt 4.7
Wollen diese Hilfe.
InformationsquelleAutor firescreamer
Soweit ich weiß, Qt creator nicht funktioniert die .pro-Konfigurationen in Erwägung gezogen werden, wenn Sie diese nicht haben einrichten, getrennt von der IDE.
Sollten Sie gehen, um die Projekt-Einstellungen Klonen Sie die debug-Konfiguration, benennen Sie Sie freizugeben, setzen Sie den QMake build-Konfiguration release(!) und ändern Sie die anderen Einstellungen wie Sie sehen, passen. Dann können Sie auswählen, welche Konfiguration auf build aus der IDE.
P. S: Versuchen Sie es mit Qt Creator 1.3.1 als es behebt viele bugs und bringt interessante neue Funktionen.
Für Projekte > Build Settings - > Hinzufügen - > Klon ausgewählt. Dann wählen Sie die neue Konfiguration (. e.g Release) und erweitern Sie den QMake build-Schritt. Setzen Sie den QMake build-Konfiguration release und fertig.
InformationsquelleAutor rpg