如题,使用官方的Linux Bsp,如何使用与bsp相同的交叉编译编译应用程序?
我使用的gcc 7.2.1的编译fb-test程序,下载到板子/tmp目录下,设置权限为777,运行程序,报段错误,估计是编译器不统一。
[2018/12/30 1:05:21] /tmp # chmod 777 fb-test
[2018/12/30 1:05:22] /tmp # sync
[2018/12/30 1:05:25] /tmp # ./fb-test
[2018/12/30 1:05:25] Segmentation fault
请教下大家,怎么使用官方linux bsp使用的交叉编译器,编译应用程序,谢谢!
离线
另外fb-test的程序我改为简单的打印测试,如下:
int main(int argc, char **argv)
{
int opt;
int req_fb = 0;
int req_pattern = 0;
/*
printf("fb-test %d.%d.%d (%s)\n", VERSION, PATCHLEVEL, SUBLEVEL,
VERSION_NAME);
*/
for (;;) {
sleep(1);
printf("%s\n",__func__);
}
return 0;
}
离线
参考这个帖子: https://whycan.cn/t_1522.html
工具链可以用c600 bsp 自带的这个: brandy/gcc-linaro/bin/arm-linux-gnueabi-gcc
晕哥,我用了这个编译会报下面的错误,不知你有没遇到?
root@ubuntu:/mnt/sdc/f1c100s/C600/C600_Linux/app/fb-test-app-rosetta-1.1.0# make
/mnt/sdc/f1c100s/C600/C600_Linux/app/fb-test-app-rosetta-1.1.0/../../brandy/gcc-linaro/bin/arm-linux-gnueabi-gcc -O2 -Wall -DVERSION=1 -DPATCHLEVEL=1 -DSUBLEVEL=0 -DVERSION_NAME=\"rosetta\" perf.c -o perf
/mnt/sdc/f1c100s/C600/C600_Linux/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3/../../../../arm-linux-gnueabi/bin/ld: cannot find crt1.o: No such file or directory
/mnt/sdc/f1c100s/C600/C600_Linux/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3/../../../../arm-linux-gnueabi/bin/ld: cannot find crti.o: No such file or directory
/mnt/sdc/f1c100s/C600/C600_Linux/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3/../../../../arm-linux-gnueabi/bin/ld: cannot find crtbegin.o: No such file or directory
collect2: ld returned 1 exit status
make: *** [perf] Error 1
离线
那参考这个: https://whycan.cn/files/c600_bsp/buildroot.config
用这个:
/opt/c600/out/sunivw1p1/linux/common/buildroot/external-toolchain/bin/arm-none-linux-gnueabi-gcc
谢谢晕哥,用这个可以了。
离线