0

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

-I我可以通过在调用时传入相关选项来解决此问题configure(以便将正确的包含路径传递给编译器),但我希望configure脚本在找不到库时make也无法找到它。

或者,我希望配置脚本生成必要的-I命令,以便编译器找到它需要的一切。

有没有一些标准的方法来做到这一点?

4

1 回答 1

1

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

如果您在配置期间的库检查检查它是否可以链接到某个库,这决不能保证您具有可用(或可找到)编译所需的头文件。

因此,您应该为您的 configure.ac 添加对库和标头的检查

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

并且仅假设您可以在 lib 和标头都存在的情况下进行构建。

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

$ . /sw/bin/init.sh

在尝试运行 ./configure 之前,在终端中(省略“$”)

于 2012-05-21T09:19:03.380 回答