簡體   English   中英

Android NDK的編譯庫

[英]Compile library for Android NDK

我在c / c ++中有一個庫。 我已經在一些C ++程序中成功使用了它。

我想測試它是否可以在Android上編譯,以及它的大小等等。
我有沒有辦法在沒有整個Android Java項目的情況下將此庫編譯為.so文件? 我對Android開發一無所知,但是有一個朋友想使用我的庫。 我可以給他提供一個已編譯的.so文件嗎?
我發現的每個資源都說它需要從Android Project中的JNI文件夾中編譯出來。

我發現使用build-ndk腳本不需要真正的項目。 我創建了一個文件夾project ,除了另一個文件夾jni之外,什么都沒有,然后將所有源文件都放在該文件夾中。 然后,我創建了Android.mk文件,並按照ndk文檔中的描述運行了腳本。

您需要做的是android Native Development Kit(NDK) http://developer.android.com/sdk/ndk/index.html和一個GCC編譯器。

然后,您可以使用如下所示的參數創建一個Makefile(感謝ViTo Brothers Apoyan )並創建您的共享庫。

GCC := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-gcc.exe
GPP := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-g++.exe
AR  := C:\Tools\ndk-toolchain\ndk-standalone\bin\arm-linux-androideabi-ar.exe

OPTIONS  :=\
-fpic \
-ffunction-sections \
-funwind-tables  \
-fstack-protector \
-D__ARM_ARCH_5__ \
-D__ARM_ARCH_5T__ \
-D__ARM_ARCH_5E__ \
-D__ARM_ARCH_5TE__ \
-Wno-psabi \
-march=armv5te \
-mtune=xscale \
-msoft-float \
-mthumb \
-Os \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64 \
-DANDROID \
-Wa, \
-O2 \
-DNDEBUG \
-g \

default: all


all: obj
    $(AR) r mysharedlibrary.so *.o

obj:
    $(GCC) $(OPTIONS) -c *.c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM