Развертывание на основе Qt 5.12.8 из Ubuntu20.04 вызовет проблемы~

Развертывание на основе Qt 5.12.8 ubuntu20.04 вызовет проблемы. Если вы посмотрите на тестовую зависимость ldd, libQt5xxx правильно ссылается на rpath там, где вы его указываете. Некоторые libQt5Network.so.5 ссылаются на /usr/lib/x86_64-linux-gnu. Почему libQt5Network.so.5 не может ссылаться на папку ./TEST/qt/lib, указанную в rpath?

Чистая только ubuntu20.04 (qtcreator не установлен) вообще не работает Однако для нормальной ссылки требуется экспорт LD_LIBRARY_PATH=..../TEST/qt/lib. Я стараюсь не использовать LD_LIBRARY_PATH.

К вашему сведению, версия ubuntu18.04 для Qt — 5.9.5 работает именно там, где вы указываете обычный rpath. (Не LD_LIBRARY_PATH, а точная ссылка на папку, указанную в rpath, qt.conf)

      1. test.pro
QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/TEST/qt/lib\'"
QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/TEST/libs\'"
QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/TEST/qt/plugins\'"

2. /TEST/qt/lib   File lists(exist libQt5Network.so.5)
libQt5Xml.so.5                  
libQt5XcbQpa.so.5               
libQt5Widgets.so.5          
libQt5Svg.so.5                  
libQt5Sql.so.5              
libQt5OpenGL.so.5               
libQt5Network.so.5                      
libQt5MultimediaWidgets.so.5
libQt5MultimediaGstTools.so.
libQt5Multimedia.so.5                   
libQt5Gui.so.5                              
libQt5DBus.so.5                     
libQt5Core.so.5  
......

3. qt.conf
[Paths]
Prefix = /TEST
Libraries = qt/lib
Plugins = qt/plugins
Imports = qml
Qml2Imports = qml

ldd test
    libQt5Multimedia.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Multimedia.so.5 (0x00007f92537f2000)
        libQt5Widgets.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Widgets.so.5 (0x00007f9253157000)
        libQt5Gui.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Gui.so.5 (0x00007f9252b6c000)
        libQt5Xml.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Xml.so.5 (0x00007f9252b2a000)
        libQt5Sql.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Sql.so.5 (0x00007f9252ada000)
        libQt5Core.so.5 => /media/sf_test/EXE/./TEST/qt/lib/libQt5Core.so.5 (0x00007f9252591000)
        libstdc++.so.6 => /media/sf_test/EXE/./TEST/qt/lib/libstdc++.so.6 (0x00007f92523af000)
        libgcc_s.so.1 => /media/sf_test/EXE/./TEST/qt/lib/libgcc_s.so.1 (0x00007f9252394000)
        libc.so.6 => /media/sf_vdm/EXE/./TEST/qt/lib/libc.so.6 (0x00007f92521a2000)
        libQt5Network.so.5 => /lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007f9251fcb000)

        or libQt5Network.so.5 => not found

What I expected was
libQt5Network.so.5 => ***/media/sf_test/EXE/./TEST/qt/lib/libQt5Network.so.5*** (0x00007f9251fcb000

)

Пожалуйста, помогите мне~~~ Спасибо

0 ответов

Другие вопросы по тегам