Programm für Windows und Linux schreiben



  • Hi,

    wenn du nur ISO C++ verwendest, dann sollte es keine Probleme geben. Am besten du compilierst mit dem gnu-Compiler. Wenn du GUIs Programmieren willst, so kannst du das nicht mit der MFC machen, sondern du musst auf eine Plattformunabhängige Bib zugreifen- z.B. QT.



  • Dake erstmals,
    ich habe jetzt mal eine HelloWord Anwendung unter linux compilieren wollen,
    da meldet er "stdio.h": No such file or directory. Was nun?
    Foglendermaßen hab ich den compiler gestartet: g++ -o Hello.exe Hello.cpp



  • scrontch schrieb:

    Schwierig wirds beim Multithreading (bei einer Netzwerk Server-Anwendung fast unausweichlich).

    Bis mir jemand belegt, dass asynchrone Sockets unter Linux schlicht nicht funktionieren, widerspreche ich der Aussage 😉



  • warum stdio.h?

    machs doch so:

    #include <iostream>
    using namespace std;
    int main() {
    cout << "Hallo, Linuxwelt";
    }
    

    Habs mit DJGPP, der Win-Version compiliert, und sollte funktionieren. 🙂



  • Unwissender02 schrieb:

    ich habe jetzt mal eine HelloWord Anwendung unter linux compilieren wollen,
    da meldet er "stdio.h": No such file or directory. Was nun?
    Foglendermaßen hab ich den compiler gestartet: g++ -o Hello.exe Hello.cpp

    Das deutet auf einen falsch installierten Compiler hin. Hast du eine /usr/include/stdio.h?
    BTW unter Linux ist es unüblich, ausführbare Programme mit dem Suffix .exe zu versehen. Einfach Hello würde genügen.



  • Hrhr, kleiner Tipp:
    Schreibe es in Java :p
    da brauchst du dir über so einen keine Gedanken machen und kannst auch ohne Probleme eine GUI erstellen.



  • Bashar schrieb:

    Unwissender02 schrieb:

    ich habe jetzt mal eine HelloWord Anwendung unter linux compilieren wollen,
    da meldet er "stdio.h": No such file or directory. Was nun?
    Foglendermaßen hab ich den compiler gestartet: g++ -o Hello.exe Hello.cpp

    Das deutet auf einen falsch installierten Compiler hin. Hast du eine /usr/include/stdio.h?
    BTW unter Linux ist es unüblich, ausführbare Programme mit dem Suffix .exe zu versehen. Einfach Hello würde genügen.

    Vielleicht kenn g++ auch kein stdio.h, sondern lediglich cstdio.

    Vielleicht versuchst du mal die cstdio zu includieren (ohne .h). Wenn es dann
    nicht funktioniert, dann isses nich richtig installiert, was ich mir allerdings
    weniger vorstellen kann, denn dann muesste ja die Installation von gcc
    unterbrochen worden sein, sonst waere gcc/g++ nicht installiert.

    mfg
    v R



  • Vielen Dank für die Antworten,
    ich werde nacher noch ein bißchen rumprobieren, vielleicht bekomm ich das noch zum laufen. Was ich vergessen habe zu erwähnen, ich verwende cygwin, desalb auch die .exe Datei. Sollte ich das nicht hinbekommen, werde ich mal unter linux booten und dort versuchen



  • virtuell Realisticer schrieb:

    Vielleicht kenn g++ auch kein stdio.h, sondern lediglich cstdio.

    Doch. Habs ausprobiert, ausserdem fordert der Standard das.



  • Unwissender02 schrieb:

    Was ich vergessen habe zu erwähnen, ich verwende cygwin, desalb auch die .exe Datei.

    OK, aber Cygwin ist nicht Linux 😉



  • scrontch schrieb:

    Schwierig wirds beim Multithreading (bei einer Netzwerk Server-Anwendung fast unausweichlich).

    Bis mir jemand belegt, dass asynchrone Sockets unter Linux schlicht nicht funktionieren, widerspreche ich der Aussage

    bin auch dabei mit widersprechen!!
    und falls es nur was kleines sein soll, gits doch noch die wunderschöne select funktion!
    (ist die eigentlich nicht sogar genau aus dem Problem hgeraus entstanden ... also dass es damals noch kein multithreading gab??)



  • jaja schon gut, für einen kleinen Chat-Server gehen asynchrone Sockets ja in Ordnung.



  • Unwissender02 schrieb:

    ich verwende cygwin, desalb auch die .exe Datei.

    Hi,

    verwendest du cygwin nur für den gnu Compiler? Denn dann würde ich dir zu GJGPP, der gnu Compiler-Portretierung für win.
    #edit# es muss natürlich DJGPP heißen.



  • Hi,

    ich habe jetzt das Hello World Programm unter Linux zum laufen bekommen.
    Kann man bei Microsoft Visual .Net einstellen, dass er nur Standart c++ verwenden soll, anderfals eine Fehlermeldung ausgibt?
    Schon mal vielen Dank.

    MfG
    Unwissender



  • Hi,
    ich hab noch ein Problem.
    Bei mir unter Linux liegen die ganzen win32 Header-Dateien im usr/include/win32pi Verzeichnis, nur erkennt g++ nur die Dateien, die im usr/include Verzeichnis liegen. Da ich keine Lust habe und auch nicht der Sinn der Sache ist alle Dateien ins überliegende Verzeichnis zu kopieren suche ich eine Möglichkeit das anders zu lösen. Ich hoffe ihr könnt mir dabei helfen.

    MfG
    Unwissender02



  • schau dir die -L Option des GCCs an. Btw. solltest du auf WinAPI verzichten und lieber eine Wrapper Library nutzen, für neue Projekte. Da die WinAPI Unterstützung unter Linux über Wine läuft und 1. nicht überall vorhanden ist, 2. nur eine Emulation ist und 3. langsam ist.

    Schau dir mal zB. CommonC++ an, dass ist eine Library, die dir entsprechende Funktionen unter Unix und unter Windows zur Verfügung stellt und auf die Native API zurückgreift. Für GUIs kannst du verschiedenes nehmen zB. gtkmm



  • kingruedi schrieb:

    schau dir die -L Option des GCCs an. Btw. solltest du auf WinAPI verzichten und lieber eine Wrapper Library nutzen, für neue Projekte. Da die WinAPI Unterstützung unter Linux über Wine läuft und 1. nicht überall vorhanden ist, 2. nur eine Emulation ist und 3. langsam ist.

    Schau dir mal zB. CommonC++ an, dass ist eine Library, die dir entsprechende Funktionen unter Unix und unter Windows zur Verfügung stellt und auf die Native API zurückgreift. Für GUIs kannst du verschiedenes nehmen zB. gtkmm

    Vielen Dank erst mal, ich habe mir jetzt Common C++ mal angeschaut und möchte es nun unter Linux installieren. Da leider meine Englisch Kenntnisse dafür nicht ausreichen bitte ich euch um Hilfe 😉 Wie mach ich das?
    Unter Windows hab ich das gerade noch hinbekommen 😉


Anmelden zum Antworten