2010-12-21 61 views
0

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

我需要做些什么才能获得HAVE_SYS_UIO_H(和其他像它一样的宏)被正确定义?

回答

2

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

3

通常情况下,像“HAVE_SOMETHING”这样的东西是在“./configure”脚本生成的Makefiles中定义的,它实际上会生成测试程序并尝试编译并运行它们以确定某个特定系统是否具有特定的功能。