我正在尝试使用 automake 和 autotools 捆绑一个小型 C++ 程序。在我当前的设置中,所需的库安装在脚本能够找到的位置,但在从 makeconfigure
调用时找不到。g++
-I
我可以通过在调用时传入相关选项来解决此问题configure
(以便将正确的包含路径传递给编译器),但我希望configure
脚本在找不到库时make
也无法找到它。
或者,我希望配置脚本生成必要的-I
命令,以便编译器找到它需要的一切。
有没有一些标准的方法来做到这一点?
您的配置脚本可能已损坏,或者您对配置输出的解释:
如果您在配置期间的库检查检查它是否可以链接到某个库,这决不能保证您具有可用(或可找到)编译所需的头文件。
因此,您应该为您的 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 之前,在终端中(省略“$”)