Firefly开源社区

[Android] 如何使用交叉编译器编译一个简单的可执行程序

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2019-5-21 12:05:57     
本帖最后由 gavinguowd 于 2019-5-21 12:08 编辑

我从linux转移到android的,对java不熟
之前的一个简单的在命令行下可以通过v4l2接口读取摄像头的demo程序,我想移植过来测试一个图像算法,也就一个.c文件和二个头文件,直接这样写的编译命令:
source ../../build/envsetup.sh

aarch64-linux-android-gcc -O2 -I/home/ubuntu/3328_8.1_box/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/include  -L/home/ubuntu/3328_8.1_box/out/target/product/rk3328_box/system/lib64 -L/home/ubuntu/3328_8.1_box/out/target/product/rk3328_box/obj_arm/lib -o focus.out auto_focus.c
然后报错如下:
/home/ubuntu/3328_8.1_box/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find crtbegin_dynamic.o: No such file or directory
/home/ubuntu/3328_8.1_box/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find crtend_android.o: No such file or directory
这里提到的两个crt*.o文件,均在我的第二个-L指定的目录下,但仍然说找不到,希望大家不吝赐教ubuntu@ubuntu:~/3328_8.1_box/out/target/product/rk3328_box/obj_arm/lib$ ls -l crt*
-rw-rw-r-- 1 ubuntu ubuntu 2000 Apr 29 16:33 crtbegin_dynamic.o
-rw-rw-r-- 1 ubuntu ubuntu 1668 Apr 29 16:33 crtbegin_so.o
-rw-rw-r-- 1 ubuntu ubuntu 2000 Apr 29 16:33 crtbegin_static.o
-rw-rw-r-- 1 ubuntu ubuntu  900 Apr 29 16:33 crtend_android.o
-rw-rw-r-- 1 ubuntu ubuntu  632 Apr 29 16:33 crtend_so.o

回复

使用道具 举报

288

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
288
发表于 2019-5-21 17:04:54     
可以尝试在 /prebuilts 目录下寻找对应的编译工具链,进行编译。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表