昨天晚上发了一个开源项目, 本身是为了轻量化cmake工具, 功能重构, 方便后期再做功能扩展, 但是遇到一个难题, 比如 cmake 的 check_type_size 的实现, 给我的感觉是要执行程序才能输出, 如果是交叉编译, 那就不能执行了, 所以看了cmake的源码实现.
理了一下, 先说它的思路, 编译一个sizeof的demo源码,
... ...
#undef KEY
#if defined(__i386)
# define KEY '_','_','i','3','8','6'
#elif defined(__x86_64)
# define KEY '_','_','x','8','6','_','6','4'
#elif defined(__PPC64__)
# define KEY '_','_','P','P','C'