【问题标题】:/usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.7' not found (required by emulator64-x86)/usr/lib/x86_64-linux-gnu/libQt5Core.so.5:找不到版本“Qt_5.7”(模拟器64-x86需要)
【发布时间】:2017-06-30 14:08:45
【问题描述】:

我已经编译了android源码 源 ./build/envsetup.sh 午餐 aosp_x86_64-eng​​p>

当我在终端运行 emulator64-x86 时,出现错误:

emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.7' not found (required by emulator64-x86)

emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by emulator64-x86)

emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found (required by emulator64-x86)

emulator64-x86: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by emulator64-x86)

我在

中找到了 qt

/home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64/qt/

该目录包括libQt5Core.so.5.7、libQt5Widgets.so.5.7等

但libQt5Core.so在

/usr/lib/x86_64-linux-gnu/

版本是 5.5

我尝试将 LD_LIBRARY_PATH 设置为:

/home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64/

但错误仍然发生。

将libQt5Core.so.5复制到

/usr/lib/x86_64-linux-gnu/

会解决这个错误,但是qt平台插件libqxcb不起作用。

如何将 lib 路径更改为

/home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64

什么时候运行 emulator64-x86?

【问题讨论】:

    标签: android linux qt android-emulator android-source


    【解决方案1】:

    /home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64/qt/ 中留下libQt5Core.so.5。 Qt 不喜欢被移动,它会丢失插件的存储位置。在您的情况下,它可能最终会尝试加载 Qt 5.5 插件。

    LD_LIBRARY_PATH 设置为/home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64/qt/

    使用ldd检查运行时将使用哪个库。

    还要注意 qxcb 需要 X11 才能运行。

    【讨论】:

    • 最后我使用: export LD_LIBRARY_PATH=/home/wanyu/work/aosp/prebuilts/android-emulator/linux-x86_64/lib64/qt/lib/ 。解决这个问题。
    • 对我来说正确的路径是android-sdk/lib64/qt/lib/。此外,必须定义ANDROID_SDK_ROOT(它等于ANDROID_HOME)。
    【解决方案2】:

    对我来说,有效的是将所有 android 内部 qt 库复制到系统 qt 库文件夹 cp -a $ANDROID_HOME/emulator/lib64/qt/lib/. /usr/lib/x86_64-linux-gnu/

    【讨论】:

    • 此解决方案也有效。它在我的情况下有效。在不尝试代码的情况下标记某人是错误的
    • @user618677 这不是因为“它有效”,它是一个很好的答案。在这种情况下,这个答案是(非常)不好的做法:您不应该将库从 Android 模拟器复制到系统库文件夹。您可能会擦除关键系统库或与关键系统库发生冲突。
    【解决方案3】:

    我遇到了同样的问题。当包含第二个库时,我得到“qt not found”。

    添加到 .pro 的主要代码

    #Add Crypto lib
    
        win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../usr/lib/x86_64-        linux-gnu/release/ -lcrypto++
        else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../usr/lib/x86_64-linux-gnu/debug/ -lcrypto++
        else:unix: LIBS += -L$$PWD/../../../usr/lib/x86_64-linux-gnu/ -lcrypto++
    
        INCLUDEPATH += $$PWD/../../../usr/include/cryptopp
        DEPENDPATH += $$PWD/../../../usr/include/cryptopp
    

    我解决了像第一个 ribary 一样更改路径并保存最后一句话“-lcrypto++”的问题

        win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../build-ViCore-  Desktop_Qt_5_13_1_GCC_64bit-Debug/release/ -lcrypto++
        else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../build-ViCore-  Desktop_Qt_5_13_1_GCC_64bit-Debug/debug/ -lcrypto++
        else:unix: LIBS += -L$$PWD/../build-ViCore-Desktop_Qt_5_13_1_GCC_64bit-Debug/ -lcrypto++
    
        INCLUDEPATH += $$PWD/../build-ViCore-Desktop_Qt_5_13_1_GCC_64bit-Debug
        DEPENDPATH += $$PWD/../build-ViCore-Desktop_Qt_5_13_1_GCC_64bit-Debug
    

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多