+-

在C程序中,我想做不同的事情.该程序将在基于x86 / x64的GNU / Linux系统以及基于ARM的系统上运行,例如在PC或RaspberryPI上.
GCC中是否有预定义的宏可以告诉平台?
就像是
#ifdef _X64_
/do x64 stuff
#elif _ARM_
//do arm stuff
#endif
也许那是错误的方法?我将使用Makefile进行编译,并且可以摆脱自己的定义.
最好/最安全的方法是什么?
最佳答案
这些帖子已经回答了:
GCC predefined macros for architecture X、 Detecting CPU architecture compile-time
GCC predefined macros for architecture X、 Detecting CPU architecture compile-time
您可以在这里拥有它们:
http://sourceforge.net/p/predef/wiki/Architectures/
您的方法仅应用于一小部分代码或函数,但应可以使用.
编辑:
基本上,因为链接可能变得无效:
__arm__应该适用于ARM.
__x86_64__应该适用于x64体系结构.
是的,您可以执行以下操作:
#ifdef __x86_64__
// do x64 stuff
#elif __arm__
// do arm stuff
#endif
点击查看更多相关文章
转载注明原文:c-如何判断程序是否在x86 / x64或ARM Linux平台上运行 - 乐贴网