Twin
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
Hiho, habe ein Problem.. ich habe ein Programm für die Firma geschrieben, dass unter Linux problemlos läuft.
Ich kompiliere also das Programm über:
g++ `pkg-config --cflags --libs gtk+-2.0` -o main *.cpp und es läuft. MinGW32 habe ich aus den Repositorys installiert, jedoch bringt ein synonymer Aufruf mit
i586-mingw32msvc-g++ `pkg-config --cflags --libs gtk+-2.0` -o main.exe *.cpp nicht den gewünschten Erfolg, da immer die folgende Fehlermeldung erscheint:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/bin/ld: cannot find -lgtk-x11-2.0 was mache ich falsch, muss ich eventuell noch Abhängigkeiten für Windows installieren? So funktioniert es jedenfalls leider nicht... Bin für jede Hilfe dankbar,
vielen Dank im Vorraus
|
BadBoy
Anmeldungsdatum: 25. Oktober 2007
Beiträge: 479
|
du musst das Windows-Programm schon gegen Windows-Bibliotheken linken. Dementsprechend müsstest du die Libs also auch erst für Windows kompilieren.
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
Danke, die entsprechenden Windows libs sind aber im include path enthalten, zur Sicherheit habe ich nochmals das All-In-One Windows Bundle geladen ( http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.0-20090317_win32.zip ) und an MinGW übergeben, aber es bringt genau das gleiche...
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Hallo, ich weiß nicht, ob's dir hilft, aber ich habe meine GTKmm-Programme unter Windows immer mit folgendem Trio kompiliert: (ungefähr in dieser Reihenfolge installiert) Anschließend konnte ich meine Programme wie gewohnt mit
| g++ quellcode.cpp -o executable.exe `pkg-config --libs --cflags gtkmm-2.4`
|
in der MSYS-Shell kompilieren. Wenn du es mit deinem GTK-Paket nicht hinbekommst, kannst du es ja auch mal auf diese Weise probieren (wobei du in deinem Fall das "gtkmm-2.4" durch "gtk+-2.0" ersetzen solltest - GTK ist im Paket enthalten). Ach so, da fällt mir ein: der MinGW wollte den pkg-config-output bei mir unbedingt am Ende der Befehlszeile sehen. Möglicherweise hilft es, die Reihenfolge so zu drehen, wie ich es im obigen Beispielbefehl getan habe. Mit freundlichen Grüßen Daniel Richter
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
Hi, vielen Dank, das könnte mir vielleicht schon etwas weiterhelfen - nur benötige ich dann eine Windowsbox oder geht das direkt unter Linux? Danke
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Hallo, Twin schrieb: Hi, vielen Dank, das könnte mir vielleicht schon etwas weiterhelfen - nur benötige ich dann eine Windowsbox oder geht das direkt unter Linux?
Ach darum geht es 😬 Ich dachte, du bekommst dein Programm nicht unter Windows zum laufen... Dein Problem ist vermutlich, dass du die GTK-Bibliotheken für Windows irgendwie installieren musst. Möglicherweise lässt sich das Problem mit Wine einfacher lösen. Habe aber nicht so viel Erfahrung mit Cross-Compiling 😕 Wenn du eine Windows-Lizenz hast, kannst du auch eine virtuelle Maschine aufsetzen. Mir freundlichen Grüßen Daniel Richter
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
Naja, ich habe keine Lust zum Neukompilieren eines Programmes extra ein Betriebssystem in der VB aufzusetzen...
Also wenn es gar nicht anders geht würde ich es übergangsweise machen, aber ich versuche es ja zu vermeiden.
Und "installieren" ist ja nichts andere als die Datei irgendwo hin zu schieben... In meinem Fall gebe ich den entsprechenden Programm ja alle nötigen Hinweise zu den Pfaden, indem sich die nötigen Dateien befinden. Kann mir also nicht vorstellen, dass es daran liegt - falls doch lasse ich mich gerne eines besseren belehren! Ich versuchs einfach mal mit deiner Methode unter wine, also danke bis hierhin ☺
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Twin schrieb: In meinem Fall gebe ich den entsprechenden Programm ja alle nötigen Hinweise zu den Pfaden, indem sich die nötigen Dateien befinden.
Das gilt für die Header; dynamische Bibliotheken werden durch den Namen identifiziert. Das ist auch sinnvoll, denn die Bibliotheken werden zur Laufzeit geladen - bei Angabe eines festen Pfades wäre das Programm nicht portabel.
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
danielrichter schrieb: Twin schrieb: In meinem Fall gebe ich den entsprechenden Programm ja alle nötigen Hinweise zu den Pfaden, indem sich die nötigen Dateien befinden.
Das gilt für die Header; dynamische Bibliotheken werden durch den Namen identifiziert. Das ist auch sinnvoll, denn die Bibliotheken werden zur Laufzeit geladen - bei Angabe eines festen Pfades wäre das Programm nicht portabel.
Das stimmt natürlich, an die Bibliotheken hab ich gar nicht gedacht - weißt du denn zufällig, ob es in den Repositories ein Paket mit den Windowslibs gibt?
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Das stimmt natürlich, an die Bibliotheken hab ich gar nicht gedacht - weißt du denn zufällig, ob es in den Repositories ein Paket mit den Windowslibs gibt?
Nein, habe aber gerade ein HowTo gefunden:
How to guide for cross-compiling GTK+ for Win32 Lese ich mir auch gleich mal durch...
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
Danke, das sieht sehr vielversprechend aus. Werde es mir morgen im Büro mal ansehen, habe hier leider (oder zum Glück?) kein Windows.
Melde mich dann ob es geklappt hat.
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Twin schrieb: Danke, das sieht sehr vielversprechend aus. Werde es mir morgen im Büro mal ansehen, habe hier leider (oder zum Glück?) kein Windows.
Wieso? Es geht in dem Artikel doch um Cross-Compiling (also GTK-Programme für Windows unter Linux kompilieren). Oder worauf beziehst du dich?
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
danielrichter schrieb: Twin schrieb: Danke, das sieht sehr vielversprechend aus. Werde es mir morgen im Büro mal ansehen, habe hier leider (oder zum Glück?) kein Windows.
Wieso? Es geht in dem Artikel doch um Cross-Compiling (also GTK-Programme für Windows unter Linux kompilieren). Oder worauf beziehst du dich?
Ja, das stimmt schon, aber erstens habe ich das Programm nicht hier da es noch nicht aufm SVN ist und zweitens habe ich dann keine Möglichkeit zum testen 😉
|
Twin
(Themenstarter)
Anmeldungsdatum: 30. September 2008
Beiträge: 28
Wohnort: Malchow
|
hiho, also das Crosscompilen geht zwar immer noch nicht richtig, vermutlich bin ich einfach zu dämlich und übersehe was - aber wir hatten glücklicherweise noch eine Windowslizenz rumliegen und darunter bekomme ich das Programm nun auch kompiliert, ich danke dir daniel!
|
danielrichter
Anmeldungsdatum: 14. Februar 2008
Beiträge: 273
Wohnort: Sachsen
|
Twin schrieb: vermutlich bin ich einfach zu dämlich und übersehe was
Ehrlich gesagt, habe ich es gestern auch versucht und bin kläglich gescheitert 😬 Naja, ist ja jetzt auch egal...
|