請教:
我現在 在 jni 有檔案 Android.mk
LOCAL_PATH:= $(call my-dir)
LOCAL_MODULE := libPort_Dv
LOCAL_CFLAGS := -Werror
LOCAL_SRC_FILES := Port_Dv.c
LOCAL_LDLIBS := -llog -lGLESv2
include $(BUILD_SHARED_LIBRARY)
上面這段是可以編譯出 32 位的 so
并且可以使用
現在我需要編譯 64 位的
LOCAL_PATH:= $(call my-dir)
LOCAL_MULTILIB := 64
LOCAL_MODULE := libPort_Dv
LOCAL_CFLAGS := -Werror
LOCAL_SRC_FILES := Port_Dv.c
LOCAL_LDLIBS := -llog -lGLESv2
include $(BUILD_SHARED_LIBRARY)
so 檔案是可以編譯出
但是不能使用,我哪里錯了?
要怎么寫才能編譯出 64 位的 so
我編譯用的命令的
ndk-build
謝謝!
uj5u.com熱心網友回復:
defaultConfig {ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
uj5u.com熱心網友回復:
defaultConfig {ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
寫到哪里?
謝謝!
uj5u.com熱心網友回復:
apply plugin: 'com.android.application'
android {
...
/*
關于 CPU 指令集
NDK 17 以上只支持 armeabi-v7a, arm64-v8a, x86, x86-64 四種 CPU 指令集架構
*/
// 配置 AS 工程中的 C/C++ 源檔案的編譯
// defaultConfig 內部的 externalNativeBuild 配置的是配置 AS 工程的 C/C++ 源檔案編譯引數
// defaultConfig 外部的 externalNativeBuild 配置的是 CMakeList.txt 或 Android.mk 構建腳本的路徑
externalNativeBuild {
cmake {
cppFlags ""
//配置編譯 C/C++ 源檔案為哪幾個 CPU 指令集的函式庫 (arm , x86 等)
abiFilters "armeabi-v7a" , "arm64-v8a", "x86", "x86_64"
}
}
//配置 APK 打包 哪些動態庫
// 示例 : 如在工程中編譯的函式庫 , 其提供了 arm, x86, mips 等指令集的動態庫
// 那么為了控制打包后的應用大小, 可以選擇性打包一些庫 , 此處就是進行該配置
ndk{
// 打包生成的 APK 檔案指揮包含 ARM 指令集的動態庫
abiFilters "armeabi-v7a" , "arm64-v8a", "x86", "x86_64"
}
}
// 配置 NDK 的編譯腳本路徑
// 編譯腳本有兩種 ① CMakeList.txt ② Android.mk
// defaultConfig 內部的 externalNativeBuild 配置的是配置 AS 工程的 C/C++ 源文件編譯引數
// defaultConfig 外部的 externalNativeBuild 配置的是 CMakeList.txt 或 Android.mk 構建腳本的路徑
externalNativeBuild {
// 配置 CMake 構建腳本 CMakeLists.txt 腳本路徑
// 使用該配置時 , 將 ndkBuild 配置注釋掉
/*cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.10.2"
}*/
// 配置 Android.mk 構建腳本路徑
// 使用該配置時 , 將 cmake 配置注釋掉
ndkBuild{
path "src/main/cpp/Android.mk"
}
}
...
}
...
————————————————
著作權宣告:本文為CSDN博主「韓曙亮」的原創文章,遵循CC 4.0 BY-SA著作權協議,轉載請附上原文出處鏈接及本宣告。
原文鏈接:https://blog.csdn.net/shulianghan/article/details/104272170
"arm64-v8a", "x86_64" 這兩個配置是 64 位的 ;
開發的時候只配置一個 armeabi-v7a 就可以 , 配置多了沒啥用 , 導致 APK 體積變大
uj5u.com熱心網友回復:
Module 下的 build.gradle 中配置uj5u.com熱心網友回復:
我要編譯出 64 位的 so然后把這個 so 放到 unity 里
所有,是需要編譯出 64 位的 so (也是就是 dll)
謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/275237.html
標籤:Android
上一篇:QT 安卓程式如何后臺運行保活?
