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ライブラリが利用可能かどうかが不明確になります。最も簡単な解決策は、MyAppの依存関係にMyServiceライブラリを追加することです:
add_dependencies(MyApp MyService)
マルチアーキテクチャのプロジェクトにアーキテクチャごとのライブラリを追加する場合は、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)
qt_android_generate_deployment_settings()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。