我正在使用autotools来配置和构建使用dlopen及其朋友的项目。
我的根目录configure.ac
中有以下代码段:
AC_SEARCH_LIBS([dlopen], [dl dld], [], [
AC_MSG_ERROR([unable to find the dlopen() function])
])
我从https://autotools.io/autoconf/finding.html
获得的该库由autotools找到:
checking for library containing dlopen... -ldl
但是,该库似乎没有添加到$(LIBS)
,因为:
a_out_LDADD=-ldl
工作(即项目编译和运行)和
a_out_LDADD=$(LIBS)
没有(即undefined reference to 'dlopen'
)
我错过了什么?
答案 0 :(得分:0)
(完全披露,我是链接文档的作者。)
你确定LIBS
变量没有被某种方式破坏吗?您可以查看config.log
以查看最终输出是什么。我认为最常见的问题是后来的行LIBS=${SOMEDEPS_LIBS}
没有预先设置旧的LIBS
值。
此外,您不需要执行_LDADD=$(LIBS)
因为后者默认添加到所有链接命令。