Program läuft unter Windows aber nicht unter osx



  • hallo zusammen, ich habe ein kleines problem. Ich habe ein konsolen program geschrieben dass mir bestimmte zahlen berechnet oder filtert. Unter windows läuft das programm einwandfrei. Unter mac kann ich das problemlos mit xcode(gcc) kompilieren und auch starten. jedoch werden nur die ersten funktionen berechnet und die weitere nicht. Ich verstehe nicht, dass der compiler keine fehler meldet, dass programm jedoch irgendwie stehen bleibt. Woran kann es liegen. Muss ich bein mac auf etwas achten wenn ich c++ entwickle. würde ich einen fehler bauen ,dann könnte ich das doch nicht durch den compiler bringen.



  • "Ich habe Kaffee gekocht, und einen Stein auf den Tisch gelegt, aber
    der Papagei spricht immer noch nicht. Was hab ich falsch gemacht ?"

    Hast du schon mal den Debugger drüberlaufen lassen ?
    Sonstige Infos ?
    So kann jeder wohl nur raten...



  • Hi, danke für den Kaffee. Klar kann ich den Code hier reinschreiben. Ist aber nicht wenig. Ich wollte erstmal fragen ob ich nicht etwas beachten soll wenn ich ein c++ programm nach osx portiere. Dann komische ist nur dass das programm problemlos durch den compiler läuft, jedoch im betrieb irgendwann stehen bleibt.



  • Klingt nach einem Logikfehler.
    Evtl. ist unter OSX einfach irgendwas anders
    als unter Windows. Verwendest du irgendwelche Libs ?
    Weisst du an welcher Funktion es liegt ?
    Ansonsten musst du halt was im quellcode Rumspielen,
    um dahinter zu kommen, oder den Debugger anwerfen...



  • Ja, würde erstmal debuggen und an ein paar Stellen breakpoints setzen. Auch können Logging-Ausgaben helfen, so das man den Programmablauf textuell verfolgen kann.

    void foo(int a) {
    std::clog << "in foo(int) a = " << a << std::endl;
    //...
    }
    
    int main() {
        std::clog << "main() entry\n";
        foo(1);
        std::clog << "main() end\n";
    }
    

    So in etwa. Dann kannste dein Programmablauf verfolgen und abschätzen wo es knallt. Am besten wäre natürlich wenn du log4cpp einsetzen würdest.


Anmelden zum Antworten