应该在哪里定义像HAVE_SYS_UIO_H这样的宏?

时间:2010-12-21 14:01:54

标签: c

我需要包含一个需要定义HAVE_SYS_UIO_H的头文件。我的系统实际上有sys/uio.h,但宏没有自动定义。目前,我可以在包含标题之前定义它,但这显然是一个坏主意。

我需要做些什么才能正确定义HAVE_SYS_UIO_H(和其他类似的宏)?

2 个答案:

答案 0 :(得分:3)

通常在“./configure”脚本生成的Makefile中定义“HAVE_SOMETHING”之类的东西,它实际上会生成测试程序并尝试编译并运行它们以确定特定系统是否有特定的东西。

答案 1 :(得分:2)

在makefile中有一些逻辑检查是否存在标头,如果是,则添加-DHAVE_SYS_UIO_H。使用automake可以使这更容易或提示用户提供值(例如通过make CONFIGURE)。