QT_ANDROID_EXTRA_LIBS
与目标一起部署的额外库。
此属性自Qt 6.0引入。
注意:此属性处于技术预览阶段,可能会有未来的版本更改。
注意:仅当针对Android平台时才使用此属性。
将外部库复制到您的应用libs
文件夹并在启动时加载的库列表。例如,您可以使用此功能在您的应用中启用OpenSSL。有关更多信息,请参阅为Android添加OpenSSL支持。
当从您的项目构建树添加额外库时,还需要添加库与应用目标之间的依赖关系。使用以下项目结构可能导致APK部署时出现问题时
qt_add_executable(MyApp main.cpp) set_target_properties(MyApp PROPERTIES QT_ANDROID_EXTRA_LIBS ${CMAKE_CURRENT_BINARY_DIR}/libMyService_${ANDROID_ABI}.so ) # MyService library doesn't have any relations with MyApp qt_add_library(MyService service.cpp)
这会导致在MyApp部署之前,无法确定MyService库是否可用。最简单的解决方案是将MyService库添加到MyApp依赖中
add_dependencies(MyApp MyService)
当向多ABI项目添加每个架构的库时,应显式列出它们的路径,而不是依赖诸如CMAKE_ANDROID_ARCH_ABI
之类的变量来动态计算路径。
优先考虑
set(libs ${CMAKE_CURRENT_BINARY_DIR}/libA_x86so ${CMAKE_CURRENT_BINARY_DIR}/libA_x86_64.so ${CMAKE_CURRENT_BINARY_DIR}/libA_arm64-v8a.so ${CMAKE_CURRENT_BINARY_DIR}/libA_armeabi-v7a.so ) set_target_properties(MyApp PROPERTIES QT_ANDROID_EXTRA_LIBS ${libs}) # When targeting precompiled libs target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC libA_${ANDROID_ABI})
而不是
set_target_properties(MyApp PROPERTIES QT_ANDROID_EXTRA_LIBS ${CMAKE_CURRENT_BINARY_DIR}/libA_${CMAKE_ANDROID_ARCH_ABI}.so
© 2024 Qt公司有限公司。本文件中包含的文档贡献是各自所有者的版权。本文件提供的文档是在自由软件基金会发布的GNU自由文档许可版本1.3的条款下授权的。Qt及其相关标志是芬兰Qt公司及其全球子公司和关联公司的商标。所有其他商标均为各自所有者的财产。