Seite 1 von 1

GCC: 64 Bit define

Verfasst: Sa Jan 30, 2010 3:21 pm
von Xin
Mööp,

ich wusel gerade an meinem Compiler rum und habe gestern lange nach einem Fehler gesucht, der unter Linux und Windows nicht auftritt. Inzwischen weiß ich, dass mein MacBook mit der SnowLeopard Installation ein 64 Bit OS installiert bekommen hat. Leopard war wohl noch 32 Bit.

In jedem Fall habe ich eine Stelle, die nicht 64-Bit-Kompatibel ist und die ich für 32-Bit und 64-Bit unterschiedlich schreiben muss.
Hierfür suche ich ein Makro, mit dem ich den verwendeten Compiler, bzw. das zu erstellende Executable unterscheiden kann, also ob eine 32Bit oder 64Bit Version kompiliere.

Ist das jemandem schon bekannt?

Re: GCC: 64 Bit define

Verfasst: Sa Jan 30, 2010 3:38 pm
von Xin
gcc.gnu.org hat geschrieben: http://gcc.gnu.org/onlinedocs/cpp/Commo ... acros.html

__LP64__
_LP64
These macros are defined, with value 1, if (and only if) the compilation is for a target where long int and pointer both use 64-bits and int uses 32-bit.
Für VisualStudio scheint mit _Win64 entscheidend.

Re: GCC: 64 Bit define

Verfasst: Sa Jan 30, 2010 5:23 pm
von Kerli
Ansonsten ist http://predef.sourceforge.net/prearch.html immer recht hilfreich...

Re: GCC: 64 Bit define

Verfasst: So Jan 31, 2010 11:13 am
von Xin
Kerli hat geschrieben:Ansonsten ist http://predef.sourceforge.net/prearch.html immer recht hilfreich...
Da finde ich aber nichts drin, was mir klar sagt, ob die Zielplatform 32 Bit oder 64 Bit ist.
Außerdem muss ich inzwischen noch den Compiler unterscheiden können, da ich dem Visual Studio noch ein paar Pragmas verpassen muss, die GCC als Warning wieder ausspruckt.

EDIT: gefunden... ^^