Ich schreibe eine Anwendung, die ich Binärdateien für Mac, Windows und Linux freigeben möchte. Ich habe Code, der unter Mac und Linux kompiliert, aber unter Windows nicht.Wie kann ich mein Projekt so konfigurieren, dass plattformunabhängiger Code generiert wird?
Dies liegt an Windows fehlt eine strcasecmp. Ich habe ein bisschen darüber gelesen, wie ich eine Art Header erstellen kann, um meinen Code zu umhüllen, aber ich verstehe dieses Konzept nicht wirklich gut. Ich habe den Code auf meinem Mac nur mit vim und make bearbeitet, aber jetzt versuche ich, alles auf Visual Studio umzustellen.
Gibt es eine Möglichkeit, mein Projekt so einzurichten, dass es Windows-Wrapper-Header enthält, wenn ich auf Windows baue, aber sie weglasse, wenn ich auf meinem Mac oder meiner Linux-Box baue?
Dieses Problem gibt mir wirklich Kopfschmerzen und ich würde mich über Vorschläge freuen!
Ist WIN32 ein Compiler-definiertes Symbol oder muss ich etwas definieren? – samoz
Dies ist ein vom Compiler definiertes Symbol. – PaV
Sie müssen ein wenig vorsichtig mit WIN32 sein, da es manchmal in Compilern wahr ist, die Sie denken, dass sie nicht Windows-y sind. IIRC ist zum Beispiel wahr, wenn Symbian-Code für den Emulator kompiliert wird, obwohl keine Windows-Header oder Bibliotheken verfügbar sind. Sie haben keinen Einfluss darauf, ob Ihre Plattformen nur win/linux/mac sind, aber es könnte wichtig sein, dass der Code extrem portabel ist. –