在配置期间找到的库,但不是make

时间:2012-05-18 18:50:35

标签: c++ autoconf automake

我正在尝试使用automake和autotools捆绑一个小型C ++程序。在我当前的设置中,所需的库安装在configure脚本能够找到的位置,但在从make调用g++时找不到。

我可以通过在调用-I时传入相关的configure选项来解决这个问题(这样正确的包含路径传递给编译器),但我更喜欢{{1每当configure找不到它时,脚本都无法找到库。

或者,我希望configure脚本生成必要的make命令,以便编译器找到所需的一切。

有没有一些标准方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您的配置脚本可能已损坏,或您对configure的输出的解释:

如果在configure期间检查库检查是否可以链接对某个库进行检查,那么这并不能保证您可以编译所需的头文件(或者可以查找)。

因此,您应该在configure.ac中为库和标题添加检查

AC_CHECK_LIB([foo], [foo_init])
AC_CHECK_HEADERS([foo.h])

并且只假设你可以构建lib和&标题存在。

如果找不到标题并且您知道它们在哪里,则可以添加这些路径(在configure中)并重新运行测试。 鉴于您必须添加非常标准的路径('/ usr / local / include'应该是自动搜索路径的一部分;'/ sw / include'是fink的一部分,所以你应该确保你初始化你的系统正常运行

$ . /sw/bin/init.sh
在尝试运行之前

在终端中(省略'$')./ configure