C-Programme für Windows kompilieren (*.exe)

Z

zeael

Routinier
Hi...ich hab ein kleines Problem: Ich bin grad am C-Lernen und würde gerne einige Programme unter Linux (am besten mit gcc - falls das geht) für Windows kompilieren..als *.exe - Datei. Wie mach ich das?^^:hilfe2:

Danke im Vorraus^^
 
hehe.. du kannst auch meinen persönlichen fav nehmen. WINE ^^
 
Hi,

Dev-C++ (http://bloodshed.net/dev/devcpp.html) ist eine Entwicklungsumgebung für Windows, die auch Mingw mitbringt.

Liebe Grüße, neq
Wird aber nicht mehr weiterentwickelt.

Es wurde ja schon auf MinGW hingewiesen. Wenn Du POSIX-APIs verwendest, benötigst Du wahrscheinlich auch noch cygwin (oder Du musst dein Programm von Hand auf das Win32-API porten. In dem Fall bräuchtest Du noch das Windows Platform SDK, das es bei MS zum Download gibt).
 
Ich denke du brauchst einen C bzw. C++ kompiler für Win. Den gcc bzw. g++ müsst es auch für win geben.
Ich habe mal zum testen das bloodshed benutz. (glaube benutzt auch wieder g++/gcc) aber so wie ich bin, hab ich eine kleine Abneigung gegen Entwicklungsumgebungen ;)
 
Kann man nicht einfach für den -o Parameter einen Namen wie
"Programm.exe" eingeben? Dann wird doch eine Datei mit dem Namen "Programm.exe" erzeugt und fertig ist das Win32 App. Dann nur noch die shared-objects oder libs die man verlinkt hat auf dll's porten und schon hat man ein Windows programm samt Runtime.

Da meint man Programmierer könnten nicht zaubern:D

Na, bis zum 1.April dauert es aber doch noch ein bisschen. Oder ist das der rosa Valentinsfrust?

Allerdings kann man, soweit ich weiss, gcc tatsaechlich als cross-compiler kompilieren, allerdings weiss ich nicht, ob man dazu noch weitere Bibliotheken benoetigt.
 
Kann man nicht einfach für den -o Parameter einen Namen wie
"Programm.exe" eingeben? Dann wird doch eine Datei mit dem Namen "Programm.exe" erzeugt und fertig ist das Win32 App. Dann nur noch die shared-objects oder libs die man verlinkt hat auf dll's porten und schon hat man ein Windows programm samt Runtime.

klar, und wenn ich einen benziner mal kurz streichel, kann ich auch diesel tanken... nein, das geht nicht, sorry.

zur letzen frage : http://de.wikipedia.org/wiki/Cross-Compiler
 
Cross-Compile oder Cross-Platform muss nicht unbedingt heißen das es auf verschiedenen Betriebsystemen laufen kann, heißt es nicht eher das es auf verschiedenen Architekturen läuft ?

Sowohl als auch.

Das mit den Betriebssystemen ist allerdings in den meisten Fällen eher theoretischer Natur.

Oder hab ich jetzt da was falsch verstanden, kennt jemand denn genauen Wortlaut, wenn man für 2 unterschiedliche Betriebsysteme ein und das selbe Programm lauffähig kompelieren will?

Jein,

so klappt das nicht.

Ein typischer (und ziemlich unübersichtlicher) Weg, ist z.B. sowas zu machen wie:

- du prüfst im makefile, auf welchem OS du dich befindest
- das übergibst du dann dem compiler-aufruf
- nun hast du im source-code z.B. wie

Code:
#ifdef WINBUILD
#include "windows.h"

und

Code:
#ifdef LINUX
#include ....

Das kannst du aber in grossen Projekten gleich mal knicken, weil dann dein Code nur so von ifdef und ifndefs wimmelt und keiner mehr durchblickt.

Nicht ohne Grund haben plattformunabhängige Sprachen wie Java ihre Existenzberechtigung....

Und wenn man einmal obige Konstrukte in wirklich grossen Projekten gesehen hat und man dann mit diesem Chaos weiterarbeiten musst, lernt man java und andere Sprachen zu schätzen...........:)
 
Zuletzt bearbeitet:
Nun habe ich mich gefragt wo man eigentlich eine Liste von diesen Symbolen für jedes Betriebsystem findet, bzw. wo diese eigentlich definiert sind
Ich sehe mir die Liste meist mit
Code:
cpp -ansi -dMM < /dev/null
an. Oder entsprechend anderen Schaltern statt '-ansi'.
 
Hallo,

bin ganz neu hier. Hab ein Problem zu dem Thema aba wollt keinen neuen Thread aufmachen, weil es nur um ein Paket geht. Wenn ich devcpp starten möchte kommt immer:
"./devcpp: error while loading shared libraries: libqtintf.so: cannot open shared object file: No such file or directory"

Finde das Paket libqtintf.so aba niergends. Kann mir einer helfen?

PS: Habe openSuse10.2...
 
Es gibt dev-cpp gar nicht für Linux. Kannst Du mal einen Link posten woher Du das hast?
 

Ähnliche Themen

Warum gibt es keine Moderne Email Client auf Linux?

Partitionsschema für Manjaro Gnome Dualboot mit Windows 10

mehrere Textdateien gleichzeitig öffnen.

Arch Linux Iso Image verifizieren

PATH wird nicht richtig durchsucht

Zurück
Oben