【发布时间】:2018-01-15 20:42:53
【问题描述】:
我正在尝试在 Antergos Arch Linux 中编译一个 Qt 应用程序,该应用程序使用了icu 相关的库。当我收到以下链接器错误时,我有点困惑:
/usr/bin/ld: warning: libicuuc.so.60, needed by /usr/lib/libxml2.so.2, may conflict with libicuuc.so.56
/usr/bin/ld: warning: libicudata.so.60, needed by /usr/lib/libicuuc.so.60, may conflict with libicudata.so.56
随后是对库中函数的几个未定义引用。我仔细检查了我系统上的所有libicu* 版本,只能找到版本60;直到我查看了我的 Qt 安装目录,在 Qt/5.10.0/gcc_64/lib 下,我才意识到 Qt 提供了版本 56 的库文件。
我对链接器相关的问题并不是很感兴趣。是否可以让编译器忽略 Qt 提供的库,而只链接我系统上已有的 60 版库?如果不是,我有哪些解决方法?
【问题讨论】: