[问题] 要怎么在preprocess阶段知道系统状况

楼主: wtchen (没有存在感的人)   2016-12-11 17:49:59
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux (arm or x86)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
gcc
问题(Question):
想知道有没有可能在preprocess阶段就知道系统的大概状况?
(Makefile没有特别设定的情况下自动去判别)
例如哪种CPU/SoC(x86 or arm),然后该CPU/SoC可以使用哪种指令集。
这样我可以用
#ifdef ...
#else ...
#endif
去决定该编译哪一段对应该CPU/SoC的程式码。
(我想这应该不可能在compile阶段搞吧?)
还是我只能用shell script去抓/proc里面的设定然后指定make的步骤?
感谢。
作者: Schottky (顺风相送)   2016-12-11 18:05:00
System-specific Predefined Macros
作者: fatrabitree (胖兔子)   2016-12-11 18:07:00
可以看gcc要编成什么target来决定吧
作者: Schottky (顺风相送)   2016-12-11 18:07:00
上面是 compiler 自动定义的,除此之外 autoconf 也可以做一些测验收集资讯,自己也可以用小花招侦测比如说在 Makefile 里跑一个自己写的小工具,把侦测结果用 macro 形式写进 .h 里面
作者: Bencrie   2016-12-11 18:37:00
在Makefile 里 parse /proc/cpuinfo 然后喂 -D 给 cflags是说 ... 一般不会在 ARM 上面 build code 吧
楼主: wtchen (没有存在感的人)   2016-12-11 18:44:00
RPi3现在挺快,build 不大的code也还好感谢关键字,这就去找,谢谢。
作者: Schottky (顺风相送)   2016-12-11 18:47:00
在 Raspberry Pi 或 BeagleBone 上面 build 还蛮正常的因为不需要再特别去建一整套 cross-compiler 专用环境了
作者: EdisonX (卡卡兽)   2016-12-11 19:03:00
rpi3 build 和影像相关的我觉得超慢。

Links booklink

Contact Us: admin [ a t ] ucptt.com