我想与 Waf 建立构建时跨语言 ABI 兼容性。我将如何检查类型的大小(或任何任意类似类型的检查),并将其记录到构建配置中?
最佳答案
您可以创建一个输出该大小的程序。我在几个 ./configure
文件中看到了这个方法:
cat << EOF > test.c
#include <stdio.h>
int main ()
{
printf("int %d\n", sizeof(int));
return 0;
}
EOF
$(CC) test.c -o out
./out >> sizes
rm -f test.c out
当然,要测试错误情况等。
编辑:请参阅 waf文档。特别是,请阅读 run_c_code
方法。要保存 sizeof
的值,您可以写入文件并从 Python/Waf 读取它。或者,请参阅 define_ret
参数。
关于在构建时检查 C 类型的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140221/