什么是处理在Autoconf脚本非标准库位置的正常方式?
-
09-09-2019 - |
题
我试图使用GNU的autoconf / automake的工具链的第一次,所以回答我的问题可能是微不足道的。
在程序需要在头文件和库被安装在非标准位置的OpenGL / GLUT。我发现这些宏应该做的所有检查我。我只是用的 AX_CHECK_GLUT 的调用它。如何使宏观找到库?我正在寻找类似
./配置--with-GLUT-DIR = /家庭/汉诺/过剩
更一般:什么是处理在Autoconf脚本非标准库位置的正常方式?当然,我可以玩的CPPFLAGS和LIBS变量,但我有我失去了一些东西的感觉。
解决方案
自动工具的设计方式,一个包的作者并没有做任何事情来支持安装在非标准位置的先决条件。 ./configure --help
的输出包括下列行:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
因此,如果安装者安装在非标准位置的先决条件,他将不得不发出
./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib
由于CPPFLAGS
和LDFLAGS
由configure
检查和Makefile
规则中使用,就可以工作。
一些包作者喜欢提供--with-
包 =location
选项作为上述的简写,但是这通常不包选项的--with-
目的。这些选项是更好地利用指定一个可选包是否应使用或如何的先决条件应得到满足。
不隶属于 StackOverflow