PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux-C_Datei in WindowsXP-C-Datei umschreibbar ?



Vilem
01.05.2011, 15:33
Hallo,
Frage eines Unbedarften an die C-Profis.
Ist es schwierig außer Schreibarbeit, also ohne daß es mit größerer Kopfarbeit bzw. Neuprogrammierung verbunden ist, eine in C für LINUX geschriebene Quelldatei in eine C-Datei für WindowsXP umzuarbeiten, so daß sie in eine lauffähige exe-Datei auf WindowsXP kompiliert werden kann ?
Wer die Datei ansehen will: http://www.joshuawise.com/parspi.c
Vielen Dank für eine Antwort !
Gruß Vilem

nanoBean
01.05.2011, 15:44
Hi,

versuch es doch mal, ob du bei cygwin.org nicht fündig wirst. Cygwin ist eine Sammlung von Linux-Tools die für Windows kompiliert wurden (ich meine mich zu erinnern, dass sie hierzu aber z.T. auch migiert wurden). Ggf. kannst du dann deren Header mit verwenden.

Zitat von deren HP:

Cygwin is:


a collection of tools which provide a Linux look and feel environment for Windows.
a DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.

Vilem
03.05.2011, 15:59
Hallo,
Vielen Dank für die Antwort, werde versuchen mich da rein zu knieen. Leider steht da auch auf der HP: " ...is not a way to run native Linux apps on windows. You must rebuild your application from source if you want it to run on Windows."
Das verstehe ich so, daß es auf keinen Fall so eine Art Übersetzungsprogramm gibt, wie ich mir das bestenfalls erhofft hatte.
Gruß Vilem

markusj
03.05.2011, 16:36
Nein, das bedeutet nur, dass du die Anwendung neu kompilieren musst, damit sie unter Windows ausgeführt werden kann. Cygwin bringt entsprechende Headerfiles + Bibliotheken mit, um für die Linux/Unix/POSIX-API geschriebene Anwendungen unter Windows ausführen zu können, sofern sie entsprechend kompiliert wurden.

mfG
Markus

Vilem
12.05.2011, 16:56
Hallo markusj,
vielen Dank für die Erläuterung, versuche mich da durch zu hangeln, da ich bisher noch nix mit Linux zu tun hatte. Melde mich wieder, falls ich erfolgreich bin. Dank und Gruß Vilem

Hero_123
12.05.2011, 20:49
Hi

1.) Kompilieren mit cygwin unter xp bzw win7 fkt, es kann aber sein, daß dein Programm nur auf dem PC läuft, wo cygwin installiert ist (ist mir passiert - habe ein Programm auf meinem PC unter cygwin kompiliert (habe win7) und habe es da unter win7 problemlos laufen lassen können - auf dem PC in der Arbeit lief es aber nicht, da irgendwelche *dlls bezgl cygwin fehlten...ist zwar ein xp-PC, hat aber mit dem Betriebssystem in diesem Falle nichts zu tun...habe dann mein Programm mit dem mingw kompiliert (ist zwar jetzt größer..) und es läuft auf allen Windows-PCs...

2.) warum machst du es nicht unter xp mit dem mingw?

3.) habe mir kurz den source-code angesehen - da sind ja etliche X11-header mit included - da wirste beim migrieren händisch tätig werden müssen...viel spaß!

mfg

Hero_123

nanoBean
13.05.2011, 00:06
Hi

1.) Kompilieren mit cygwin unter xp bzw win7 fkt, es kann aber sein, daß dein Programm nur auf dem PC läuft, wo cygwin installiert ist (ist mir passiert - habe ein Programm auf meinem PC unter cygwin kompiliert (habe win7) und habe es da unter win7 problemlos laufen lassen können - auf dem PC in der Arbeit lief es aber nicht, da irgendwelche *dlls bezgl cygwin fehlten...ist zwar ein xp-PC, hat aber mit dem Betriebssystem in diesem Falle nichts zu tun...habe dann mein Programm mit dem mingw kompiliert (ist zwar jetzt größer..) und es läuft auf allen Windows-PCs...
Hero_123

Sollte aber kein Problem sein (technisch),die dll's umzukopieren. Ob das Lizenztechnisch Ok ist, weiß ich aber nicht.


Hi
3.) habe mir kurz den source-code angesehen - da sind ja etliche X11-header mit included - da wirste beim migrieren händisch tätig werden müssen...viel spaß!


Hätte ich wohl auch vorher mal machen sollen :-)
Für mich als Laien sieht es aber so aus, als könnte es ggf. auch ohne den X11 Kram laufen.



Display *mydisplay;
Window mywindow;
XEvent myevent;
XSizeHints myhint;
XWMHints mywmhint;
Den Kram löschen und alles unterhalb "/* X stuff */"

Sag auf jeden Fall mal Bescheid, ob es was geworden ist.