Sae*_*ani 3 c linux gcc makefile
在一个c程序中,我想做不同的事情。该程序将在基于 x86/x64 的 GNU/Linux 系统以及基于 ARM 的系统上运行,例如在 PC 或 RaspberryPI 上。
GCC 中是否有预定义的宏来告诉平台?
就像是
#ifdef _X64_
/do x64 stuff
#elif _ARM_
//do arm stuff
#endif
Run Code Online (Sandbox Code Playgroud)
或者也许这是错误的方法?我将Makefile用于编译,我可以摆脱我自己的定义。
最好/最安全的方法是什么?
小智 5
这已经在这些帖子中得到了回答:
GCC 预定义宏 X 架构,检测 CPU 架构编译时
你可以在这里拥有它们:http :
//sourceforge.net/p/predef/wiki/Architectures/
您的方法应该只用于一小部分代码或函数,但它应该可以工作。
编辑:
基本上,因为链接可能无效:
__arm__应该在 ARM 上工作。
__x86_64__应该适用于 x64 架构。
是的,你可以这样做:
#ifdef __x86_64__
// do x64 stuff
#elif __arm__
// do arm stuff
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2683 次 |
| 最近记录: |