【发布时间】:2013-12-29 06:14:15
【问题描述】:
当我在编译一个新软件时,我遇到了ld 发出的一堆错误。
/usr/lib/libstreamanalyzer.so.0: undefined reference to `xmlSAXUserParseMemory@LIBXML2_2.4.30'
/usr/lib/libstreamanalyzer.so.0: undefined reference to `xmlCtxtResetPush@LIBXML2_2.6.1'
/usr/lib/libstreamanalyzer.so.0: undefined reference to `xmlCreatePushParserCtxt@LIBXML2_2.4.30'
这似乎令人困惑。链接器应该在对象中查找符号,而不是库名,但在这种情况下,@ 之前的那些似乎是函数名/符号,LIBXML2_2.6.1 是库名。而对于动态库,soname x.y.z 版本应该只在动态链接阶段重要,即可执行文件实际运行的时候。
那么这个错误到底是什么意思,上面的假设有哪一部分是错误的呢?
编辑:
安装libxml2 2.7.8后出现问题。 libxml2升级到2.9.1后就没了。
【问题讨论】:
标签: linker ld shared-libraries