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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。