想編個在 android console可以單獨執行的測試程式 hello

本帖最后由 woody.lee 于 2016-5-13 13:54 编辑

根據網路上查的資料下去編
arm-eabi-gcc -g -o hello hello.c
-Wl,-rpath-link=/home/user123/Project/ROCKCHIP/RK3288/output/android/target/product/rk3288_box/obj/lib,-dynamic-linker=/home/user123/Project/ROCKCHIP/RK3288/output/android/target/product/rk3288_box/system/bin/linker -I/home/user123/Project/ROCKCHIP/RK3288/android/prebuilts/ndk/9/platforms/android-4/arch-arm/usr/include/
-L/home/user123/Project/ROCKCHIP/RK3288/output/android/target/product/rk3288_box/obj/lib -nostdlib
/home/user123/Project/ROCKCHIP/RK3288/output/android/target/product/rk3288_box/obj/lib/crtbegin_dynamic.o -lc

編出來了 用 file 看一下
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), not stripped

用usb 拷貝到 rk3288上去跑,
執行後顯示
sh: ./hello: No such file or directory

請教大神, 應該怎麼弄呀??

直接用NDK方便点,印象中这种方式要使用静态库

本帖最后由 woody.lee 于 2016-5-13 09:09 编辑

zhansb 发表于 2016-5-12 11:09
直接用NDK方便点,印象中这种方式要使用静态库
謝謝大神,
單純加 -static, 似乎編譯不過呀 @@

大概率是交叉编译环境和系统编译环境不一致。建议楼主下载官方源码,android的话最好从源码目录生成单独交叉编译链,安装后再行编译。

本帖最后由 woody.lee 于 2016-5-13 09:10 编辑

simtoo 发表于 2016-5-12 18:24
大概率是交叉编译环境和系统编译环境不一致。建议楼主下载官方源码,android的话最好从源码目录生成单独交 …
謝謝你,
請教下, 如何從源碼目錄生成單獨交叉編譯鏈??

woody.lee 发表于 2016-5-13 09:06
謝謝你,
請教下, 如何從源碼目錄生成單獨交叉編譯鏈??

自問自答
參考 http://fanli7.net/a/caozuoxitong/Android/2014/1214/533218.html
這樣搞搞就可以了

此帖仅作者可见

楼主设置了什么

zhansb 发表于 2016-5-13 10:03
楼主设置了什么

不知道怎麼勾選了甚麼作者僅見的checkbox{:2_36:}

woody.lee 发表于 2016-5-13 09:48
自問自答
參考 http://fanli7.net/a/caozuoxitong/Android/2014/1214/533218.html
這樣搞搞就可以了

参考http://www.2cto.com/kf/201304/202810.html这篇文章

楼主可以用NDK来编译,如果在AOSP下面就更好办了,仿照现成的那个native application写一个Android.mk和hello.c,然后mm编译再push进去就可以了。

readelf 你的out文件 会看出缺少什么链接库,添加到根目录的lib文件夹下就可以

woody.lee 发表于 2016-5-12 13:09
謝謝大神,
單純加 -static, 似乎編譯不過呀 @@

就算静态编译,运行也会提示No such file… 吧,

woody.lee 发表于 2016-5-12 13:09
謝謝大神,
單純加 -static, 似乎編譯不過呀 @@

就算静态编译,运行也会提示No such file… 吧,