libicuuc.so.48是libQt5Core.so所需的文件,但找不到该文件(尝试使用-rpath或-rpath-link)。

7

我在尝试通过QtCreator运行之前成功的程序时遇到了这个警告。同时我还遇到了这个警告:
libicui18n.so.48, needed by /home/maxim/install/Qt/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
而且(来自libQt5Core.so)有十几个错误,如下:
/home/maxim/install/Qt/lib/libQt5Core.so:-1: error: undefined reference to ucnv_fromUnicode_48'
这些问题出现在Ubuntu从13.10升级到14.04后。我该怎么解决? 我也尝试安装libicu48。

maxim@maxim-VirtualBox:~$ sudo apt-get install libicu48
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libicu48 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libicu48' has no installation candidate

已经安装了其他变体的libicu(libicu48、libicu52-dbg、libicu4j-4.4-java、libicu52、libicu-dev),但我仍然收到相同的警告。
当我运行任何qt程序时(例如从终端),我会收到以下消息:./anyprogramm:无法加载共享库libicui18n.so.48:没有那个文件或目录。


你自己构建过Qt吗?为什么不直接使用你的发行版提供的软件包呢?无论如何,在构建时使用自定义sysroot,你需要添加这个链接:this - László Papp
@LaszloPapp 是的,我从源代码构建了qt。我需要做什么? - Maksim Nesterenko
你读过粘贴的链接吗?解决方案是:在 qtbase/config.tests/unix/icu/icu.pro 的unix:LIBS变量中添加-licudata。如果可以解决问题,请告诉我,我将其提交为答案。 - László Papp
@LaszloPapp 我还是不太明白 :( 我找到了icu.pro - 好的。它包含:SOURCES = icu.cpp CONFIG += console CONFIG -= qt dylib win32 { CONFIG(static, static|shared) { CONFIG(debug, debug|release) { LIBS += -lsicuind -lsicuucd -lsicudtd } else { LIBS += -lsicuin -lsicuuc -lsicudt } } else { LIBS += -licuin -licuuc } } else { LIBS += -licui18n -licuuc } 我应该把-licudata放在哪里,接下来怎么做? - Maksim Nesterenko
这并不是很难。:) 这里 Unix 意味着不是 win32,所以将其添加到 else 分支中。 - László Papp
显示剩余5条评论
1个回答

2

你应该尽可能使用来自你的发行版的二进制包,但如果你坚持使用自定义构建和自定义rpath,你需要应用这个Jira工单中的修复方案

解决方法是:在qtbase/config.tests/unix/icu/icu.pro文件中的unix:LIBS变量中添加-licudata。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接