我维护一个包自动配置,使用PKG_CHECK_MODULES
来查找我的代码所依赖的库。我想让那些旨在交叉编译我的软件包的人很容易:PKG_CHECK_MODULES
的主要问题是它获取了BUILD系统信息而不是主机。
我的方法如下:我不使用HOST系统的rootfs,而是编译我的包依赖的每个包。然后,我希望能够在调用DEPENDSON_LIBS
srcipt时强制DEPENDSON_CFLAGS
或./configure
的值。这是一个好方法吗?如何编写configure.in以允许这个?
注意:我尝试了AC_ARG_VAR
但没有成功......
答案 0 :(得分:1)
PKG_CHECK_MODULES
首先检查host-prefix-pkg-config
是否存在,然后回退到没有前缀的pkg-config
(可能会产生令人困惑的结果)。
我不确定我是否理解你的方法(第二段),但无论如何我都会为用户设置正确的路径。您可以在AC_CHECK_LIB
之后添加PKG_CHECK_MODULES
以检查所选库是否与编译器属于同一系统。
交叉编译的用户可能已经安装了host-prefix-pkg-config
,例如,除了MinGW交叉编译器之外,还有一些Linux发行版已打包。
如果没有,那就足以设置适当的环境。变量。 Autotools Mythbuster推荐wrapper that sets these variables。
作为最后的手段,用户可以直接设置*_CFLAGS
和*_LIBS
。