1. 安裝ndk;
2. 編寫hello.c原始檔
#include
int main()
3. 編寫編譯指令碼compile.sh:
#!/bin/bash
prefix=$ndk_home
cc="$prefix/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-gcc"
ndk="$prefix/platforms/android-14/arch-arm"
cflags="-i$ndk/usr/include"
ldflags="-nostdlib -wl,-rpath-link=$ndk/usr/lib -l$ndk/usr/lib $ndk/usr/lib/crtbegin_dynamic.o -lc"
$cc -o $1 $2 $cflags $ldflags
4. 執行編譯指令碼:
chmod u+x compile.sh
./compile.sh hello hello.c
5. 到android裝置上執行
adb push hello /data/local/tmp/hello
adb shell /data/local/tmp/hello
6. 看到輸出結果:
hello, arm c world!
7. 當然,可以直接使用ndk-build命令來編譯
a. 新建目錄 workspace;
b. 進入workspace,新建目錄jni;
c. 進入jni,新建hello.c檔案,輸入原始檔內容;
d. 新建android.mk檔案,內容如下:
local_path:= $(call my-dir)
include $(clear_vars)
local_src_files:= hello.c
local_module := libtest
include $(build_executable)
e. 執行ndk-build命令,可看到在workspace目錄下生成了libs和obj兩個目錄,libs下對應的armeabi資料夾下有生成的可執行檔案 test
f. adb push test /data/local/tmp/test
adb shell test /data/local/tmp/test 執行
在BeagleBoard上執行QNX系統(一)
折騰了好幾天,終於成功在beagleboard上執行qnx系統,如果說在beagleboard上執行android費了一些手腳的話,在beagleboard上執行qnx可以說是費盡周折。秉承本部落格的主旨,將折騰過程記錄下來,供各位同學參考,以後可以少繞一些彎子。1.首先要將啟動的sd卡進行分割槽和...
在VMWare上執行VOD系統
1 安裝ardos3.exe 2 我打算使用啟動選單為兩個啟動專案,雙擊 vod預設 2.cmd 重啟電腦,按預設啟動方式應該能進入vod server系統,但沒有進入,出現如下錯誤 搜尋了一下,這種錯誤可能是grub4dos版本太老所致。我們之前安裝的矮人dos3也是比較老的版本,最新的好像有5....
如何在Android系統上執行C 程式
有兩種方式 使用 ndk,通過 jni 的方式來呼叫 c 的方法。這部分知識點很多,可以參考 android ndk 從入門到精通 彙總篇 android 的本質是基於 linux 系統的,我們是可以直接執行 c 的程式 使用 ndk 編譯生成在 android 系統上可執行的執行程式 把編譯好的可...