我正在尝试使用automake和autotools捆绑一个小型C ++程序。在我当前的设置中,所需的库安装在configure
脚本能够找到的位置,但在从make调用g++
时找不到。
我可以通过在调用-I
时传入相关的configure
选项来解决这个问题(这样正确的包含路径传递给编译器),但我更喜欢{{1每当configure
找不到它时,脚本都无法找到库。
或者,我希望configure脚本生成必要的make
命令,以便编译器找到所需的一切。
有没有一些标准方法可以做到这一点?
答案 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