ubuntuusers.de

GTK Windows Cygwin...

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

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

Avatar von 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

1
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...

Antworten |