Compilierung mit einbindung aller notwendigen Bibliotheken

Verschiedenes zu Qt
Antworten
CKassiopaia
Beiträge: 38
Registriert: 21. April 2009 16:42

Compilierung mit einbindung aller notwendigen Bibliotheken

Beitrag von CKassiopaia »

Moin!

Mein Programm ist soweit lauffähig und funktioniert auf ganz gut!

Jetzt soll das Projekt auf einem anderen Recher lauffähig sein. Programmiert und Entwickelt habe ich unter Debian und Qt 4.5! Hier läuft das auch soweit super!

Nun soll das Programm auf einem "Einplatinencomputer" mit sehr wenig Festplattenspeicher ausgeführt werden. Auch hier ist ebenfalls Debian installiert, aber KEIN Qt!

Wenn ich das Programm, was ich auf der Entwicklungsplattform erstellt habe, auf dem Ziel-PC ausführe kommt - wie erwartet - eine Fehlermeldung, dass irgendwelche Bibliotheken (oder wie das auch immer heißt --> *.so) fehlen.

Ich behaupte jetzt mal, dass ich das Problem mit Installation von Qt auf dem Zielrechner beheben kann. Aber das kostet Festplattenplatz, der ja sehr wenig vorhanden ist. Gibt es eine Möglichkeit, im Qt Creator anzugeben, dass der alle notwendigen Bibliotheken oder sonstiges einfach mit in das Programm packt und ich um die Installation von Qt herumkomme?

Vielen Dank!

PS: Ich habe schon die SuFu genutzt, bin aber immer wieder auf das Problem Linux->Win oder umgekehrt gestoßen....nicht mein Problem!
CKassiopaia
Beiträge: 38
Registriert: 21. April 2009 16:42

genaue Fehlermeldung...

Beitrag von CKassiopaia »

Hier noch mal die genaue Fehlermeldung:

Code: Alles auswählen

error while loading shared libraries: libQtGui.so: cannot open shared object file: No such file or directory
Vielleicht ist es ja auch ein anderes Problem?
Danke!
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Das was du suchst heißt statisch kompilieren!

Was passiert wenn du alle libs von qt nach \usr\lib\ kopierst?
CKassiopaia
Beiträge: 38
Registriert: 21. April 2009 16:42

Beitrag von CKassiopaia »

"Auf dem Gerät ist kein Speicherplatz mehr verfügbar"

Naja...ich suche mal nach Statisch kompilieren, danke schon mal!

Hat sonst jemand irgendwelche Ideen?
CKassiopaia
Beiträge: 38
Registriert: 21. April 2009 16:42

Beitrag von CKassiopaia »

Hab das Speicherproblem gelöst: Einfach die dateien libQtGui und libQtCore auf das Zielgerät kopiert....klappt :-)

Andere kurze Frage:
Ich hab im Programm Bilder (und andere Dateien) verwendet und den Dateinamen rekursiv zum Programmspeicherplatz angegeben. Das Funktioniert auf dem Zielgerät nicht mehr...

Kann man irgendwie den Genauen Pfad zum Programm herausfinden? Oder wie kann ich die Bilder am besten Ansprechen?
Bsp:
/Programmverzeichnis/Programmname
/Programmverzeichnis/files/Bild1
/Programmverzeichnis/files/Datei1
...
So ungefähr ist mein Programm aufgebaut. und die Bilder habe ich einfach mit QPixmap("./files/Bild1") angegeben
Auf dem Programmierrechner klappt das, auf dem Zielrechner nicht mehr....

PS: Ich weiß, dass die Frage nicht zum Threadtitel passt...aber vlt. könnt ihr mir Tips geben, wonach ich suchen könnte....
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CKassiopaia
Beiträge: 38
Registriert: 21. April 2009 16:42

Beitrag von CKassiopaia »

Besten Dank für den Hinweis...

...aber hast du VOR dem Beginn mit Qt die komplette Doku gelesen? Oder hast du dir - wie ich es mache - nur das durchgelesen, was für meine Zwecke wichtig ist. Und wie du vielleicht an meinem PS gelesen hast, wollte ich nur ein Stichwort haben, wonach ich suchen muss... Komischerweise finde ich in vielen Antworten von dir so einen "Seitenhieb" auf die Doku....das könnte man auch ein bisschen netter Formulieren....

Wie gesagt, nur wenn man weiß, was man in der Doku lesen sollte, kann man das Lesen was man lesen sollte....

Aber ist ja nicht so, dass ich mich nicht mit der Doku auseinander gesetzt habe:
Welche Unterschiede, Vor- und Nachteile gibt es zwischen QCoreApplication::applicationPath() und QDir::currentPath() ?
Beide geben ja das aktuelle Verzeichnis zurück...

Danke!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es geben nicht beide das aktuelle Verzeichnis zurück.
QCoreApplication::applicationDirPath ():
Returns the directory that contains the application executable.

QDir::currentPath ()
Returns the absolute path of the application's current directory.

Und ja sowas kann man innerhalb von einer Minute Suchen im Assistant finden - deshalb die Hinweise auf die Doku. Nur denken hier die Leute hier wohl das es schneller geht einfach zu fragen anstatt sich diese eine Minute zu nehmen.
Ich weiß auch nicht alles was in der Doku steht - aber spätestens nach ein paar Minuten suchen habe ich es raus...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

CKassiopaia hat geschrieben:Besten Dank für den Hinweis...

...aber hast du VOR dem Beginn mit Qt die komplette Doku gelesen? Oder hast du dir - wie ich es mache - nur das durchgelesen, was für meine Zwecke wichtig ist. Und wie du vielleicht an meinem PS gelesen hast, wollte ich nur ein Stichwort haben, wonach ich suchen muss... Komischerweise finde ich in vielen Antworten von dir so einen "Seitenhieb" auf die Doku....das könnte man auch ein bisschen netter Formulieren....

Wie gesagt, nur wenn man weiß, was man in der Doku lesen sollte, kann man das Lesen was man lesen sollte....

Aber ist ja nicht so, dass ich mich nicht mit der Doku auseinander gesetzt habe:
Welche Unterschiede, Vor- und Nachteile gibt es zwischen QCoreApplication::applicationPath() und QDir::currentPath() ?
Beide geben ja das aktuelle Verzeichnis zurück...

Danke!
Ich gehöre auch zu der Gattung, die gerne mal querliest, d.h. das wichtigste lesen und den Rest überlesen.
In der Qt-Hilfe komme ich sehr gut klar, ohne alles durchgeblättert zu haben.
Mesitens hat man doch eine Vorstellung, was man machen möchte und wonach man suchen könnte. Duch die Querverweise komme ich meistens schnell zum Ziel.
Linux, das längste Text-Adventure aller Zeiten
Antworten