Qmake 找不到我的 Android 库,因为它们在名称后附加了 QT_ARCH 变量
Qmake cannot find my Android libraries because they have the QT_ARCH variable appended to the name
我有一个为桌面正确构建的 Qt 应用程序。我所有的库都是动态链接的。我目前正在 Ubuntu 上构建,所以它们最终看起来像“libMyLibName1.so”,但是为 Android 构建输出的库看起来像“libMyLibName1_armeabi-[=24=” ]”,这是原始名称加上 QT_ARCH 变量后缀。我收到诸如“找不到 -lMyLibName1”之类的错误,我怀疑这是因为库的命名方式不同。
我读过 https://www.kdab.com/qt-for-android-better-than-ever-before/ 后缀似乎可以启用某些 Android 功能。
我的库 .pro/.pri 文件都是这样的:
#MyLibName2.pro
QT += core
include(../MyLibName1/MyLibName1.pri)
CONFIG -= debug_and_release
CONFIG += c++17
TEMPLATE = lib
HEADERS += file.h
SOURCES += file.cpp
DESTDIR = ../../libs
unix {
target.path = /usr/lib
INSTALLS += target
}
OTHER_FILES += MyLibName2.pri
#MyLibName1.pri
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
LIBS += -L$$OUT_PWD/../../libs -lMyLibName1
我必须在 qmake 文件中更改什么才能找到库?
在 Android 上构建时,将 QT_ARCH 变量附加到 .pri 文件中的库名称。
#MyLibName1.pri
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
android: LIBS += -L$$OUT_PWD/../../libs -lMyLibName1_$${QT_ARCH}
else: LIBS += -L$$OUT_PWD/../../libs -lMyLibName1
我有一个为桌面正确构建的 Qt 应用程序。我所有的库都是动态链接的。我目前正在 Ubuntu 上构建,所以它们最终看起来像“libMyLibName1.so”,但是为 Android 构建输出的库看起来像“libMyLibName1_armeabi-[=24=” ]”,这是原始名称加上 QT_ARCH 变量后缀。我收到诸如“找不到 -lMyLibName1”之类的错误,我怀疑这是因为库的命名方式不同。
我读过 https://www.kdab.com/qt-for-android-better-than-ever-before/ 后缀似乎可以启用某些 Android 功能。
我的库 .pro/.pri 文件都是这样的:
#MyLibName2.pro
QT += core
include(../MyLibName1/MyLibName1.pri)
CONFIG -= debug_and_release
CONFIG += c++17
TEMPLATE = lib
HEADERS += file.h
SOURCES += file.cpp
DESTDIR = ../../libs
unix {
target.path = /usr/lib
INSTALLS += target
}
OTHER_FILES += MyLibName2.pri
#MyLibName1.pri
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
LIBS += -L$$OUT_PWD/../../libs -lMyLibName1
我必须在 qmake 文件中更改什么才能找到库?
在 Android 上构建时,将 QT_ARCH 变量附加到 .pri 文件中的库名称。
#MyLibName1.pri
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
android: LIBS += -L$$OUT_PWD/../../libs -lMyLibName1_$${QT_ARCH}
else: LIBS += -L$$OUT_PWD/../../libs -lMyLibName1