Qt静态构建并静态链接到ICU库

时间:2018-09-02 07:15:11

标签: linux qt

我已经在Ubuntu 14.04上使用这些命令静态构建了Qt 5.9.6

git clone git://code.qt.io/qt/qt5.git
perl init-repository --module-subset=qtbase,qtimageformats,qtcharts,qtsvg,qttools,qttranslations,qtx11extras
git submodule foreach --recursive git checkout v5.9.6
./configure -prefix "/usr/local/Qt-5.9.6" -release -force-debug-info -opensource -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -qt-pcre -qt-xcb -qt-xkbcommon-x11 -no-opengl -static -openssl-linked -nomake examples -nomake tests
MAKE_THREADS_CNT=-j8
make $MAKE_THREADS_CNT
sudo make install

这样构建就可以了,最后我可以将此构建添加到我的QtCreator中并构建一个测试项目。问题在于最终结果可执行文件动态链接到以下库:

  • libicui18n.so.52
  • libicuuc.so.52
  • libicudata.so.52

,这是一个使我的可执行应用程序无法在其他ubuntu系统上运行的问题。我希望这些库静态链接到我的项目。

这些库位于/usr/lib/x86_64-linux-gnu/,其中有两个版本,分别是静态编译(.a)和一些动态编译(.so)版本。

我还注意到QtCreator用于链接的命令包含以下库:

g++ -Wl,-O1 -o test main.o   -L/usr/local/Qt-5.9.6/lib -lQt5Core -lm -licui18n -licuuc -licudata -lqtpcre2 -ldl -lgthread-2.0 -lglib-2.0 -lpthread 

我应该更改构建中的内容还是更改项目中的.pro以使这些库静态链接?

0 个答案:

没有答案