Seite 1 von 1

Compilierung mit einbindung aller notwendigen Bibliotheken

Verfasst: 3. August 2009 11:05
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!

genaue Fehlermeldung...

Verfasst: 3. August 2009 11:13
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!

Verfasst: 3. August 2009 11:35
von Mani99
Das was du suchst heißt statisch kompilieren!

Was passiert wenn du alle libs von qt nach \usr\lib\ kopierst?

Verfasst: 3. August 2009 12:49
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?

Verfasst: 4. August 2009 16:42
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....

Verfasst: 4. August 2009 18:36
von Christian81

Verfasst: 5. August 2009 07:53
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!

Verfasst: 5. August 2009 07:58
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...

Verfasst: 5. August 2009 08:48
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.