Autotools - 传递可选的分析库以配置脚本

时间:2013-07-11 04:10:25

标签: profiling configure autotools instrumentation

我已经构建并安装了一个共享库,可以通过代码检测对我的项目进行一些分析,特别是使用gcc的-finstrument-functions开关。

可以使用编译器开关打开和关闭检测,因此我希望能够通过重新配置将依赖关系打开和关闭。

我可以通过configure的CFLAGS将-finstrument-functions传递给gcc,但是当我尝试通过LDFLAGS传递-lmylib时,配置失败

configure:2796: checking whether we are cross compiling
configure:2804: gcc -o conftest -g -Wall -Wextra -Werror  -lmylib conftest.c  >&5
configure:2808: $? = 0
configure:2815: ./conftest 
./conftest: error while loading shared libraries: libmylib.so.0: cannot open shared object file: No such file or directory

文件存在,我已仔细检查并编译并链接虚拟示例按预期工作。

有趣的是,当我将完整路径传递给共享库而不是-lmylib时,错误仍然存​​在,但是当我将完整路径传递到相应的静态库时,configure会顺利运行,并且所有内容都按预期构建

我的问题简而言之:是否有可能将可选的共享库传递给autotools生成的配置脚本,而无需更改configure.ac?

谢谢, 安迪

2 个答案:

答案 0 :(得分:1)

看起来您的库不在编译器的默认库搜索路径中。 您还可以使用LDFLAGS开关通过-L传递图书馆搜索路径:

CFLAGS=-finstrument-functions LDFLAGS="-lmylib -L/path/to/mylib" ./configure ....

答案 1 :(得分:1)

通过运行sudo ldconfig

修复

如果其他人遇到同样的问题,我会留在这里。