在构建时检查 C 类型的大小

标签 c waf

我想与 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/

相关文章:

c++ - ld在使用Waf时找不到库,但在不使用Waf时可以

windows - Windows 中的 Waf PDB 输出(MSVC 工具集)?

c++ - 第 n 个斐波那契数的调用次数

c - 分割长字符串

c - 如何在没有指数运算符的情况下用 C 编程转换多项式?

c++ - 如何在 waf 构建系统中安装具有不同名称的库?

c++ - 通过使用特定于平台的项目文件或使用项目生成器来构建自动化?

c - 如何通过 xmlrpc-c 传递哈希表之类的对象?

c - 将函数的输出按从高到低的顺序显示

waf - 使用 waf clean 时仅清洁特定目标