java - JNI怎么链接已经写好的C++编写的动态库文件.so
ringa_lee
ringa_lee 2017-04-18 10:28:03
0
1
324

JNI怎么链接已经写好的C++编写的动态库文件.so

ringa_lee
ringa_lee

ringa_lee

répondre à tous (1)
洪涛

Prenons CMake comme exemple :

Puisque la bibliothèque précompilée est déjà construite, vous devez utiliser l'indicateur IMPORTED pour indiquer à CMake qu'il vous suffit de l'importer dans votre projet :

add_library( imported-lib SHARED IMPORTED )

Ensuite, vous devez utiliser la commandeset_target_properties()pour spécifier le chemin d'accès à la bibliothèque, comme le code ci-dessous.

set_target_properties( # Specifies the target library. imported-lib # Specifies the parameter you want to define. PROPERTIES IMPORTED_LOCATION # Provides the path to the library you want to import. imported-lib/src/${ANDROID_ABI}/libimported-lib.so )

Pour que CMake trouve votre fichier d'en-tête lors de la compilation, vous devez utiliser la commande include_directories() et transmettre l'adresse de votre fichier d'en-tête dans :

include_directories( imported-lib/include/ )

Utilisez la commandetarget_link_libraries()dans le script de build CMake pour associer la bibliothèque prédéfinie à votre bibliothèque locale :

target_link_libraries( native-lib imported-lib app-glue ${log-lib} )

Lorsque vous créez votre application, Gradle regroupera automatiquement les bibliothèques importées dans votre APK. Vous pouvez utiliser APK Analyzer pour vérifier.

Mais si vous pouvez obtenir le code source, je ne vous recommande pas de lier le .so, car il peut être incompatible avec des plateformes spécifiques. Par exemple, la bibliothèque dynamique .so compilée sur la plateforme Linux ne peut pas fonctionner sur la plateforme arm (comme Android).

Référence :

  • Amusez-vous à utiliser C/C++ dans Android Studio 2.2

  • Déplacements en ELF générique (EM : 62) Mauvaise solution

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!