嵌入式Linux学习之路(一):在开发板上运行Hello程序

        前两周老板说要接入全志的方案,于是我便踏上嵌入式Linux的学习之路。本来要记录下环境的安装过程,但全志的平台已经有很详细的文档了,所以在这里只记录学习和调试过程。

         我所使用的开发板是全志的R329-N4,在收到开发板后,烧录运行程序没问题。在经过点灯、推拉文件、调试wifi蓝牙等没问题后,开始看韦东山老师的视频来开始我的嵌入式Linux学习之路。首先第一步,与初步学习c语言一样,运行一个简单的hello程序。只不过,我们是要在开发板上运行这个程序!

        首先交叉编译环境的搭建我是参考这篇文章:Hello World - V853

        当然我们使用的开发板略有不同,但配置方面大同小异。

        首先,指定存放交叉编译需要使用的库文件头文件的文件夹:

        然后,在虚拟机的Ubuntu系统下编写hello.c: 

        编写完成之后,如果是在虚拟机中运行,我们只需要 gcc -o hello  hello.c 生成可执行文件hello(注意在linux下可执行文件是没有后缀.exe的),然后运行./hello,就可以看到:        

         然而,直接把这个可执行文件放到开发板上能不能运行呢?我们来试一下。

        第一步,在window的cmd中用ADB将文件推送到开发板:                

         第二步,ls查看Tina(Tina是全志开发板的Linux系统)的目录,可以看到hello文件已经推送过来:

        

         第三步,运行./hello:

        

        权限不够,我们chmod一下: 

        

         再次运行:

        

        可以看到运行失败。这是因为,在各种开发板上运行的程序,必须要用交叉编译工具链编译之后,才能运行。通过上面参考的文章,我们要这样编译hello.c:

        编译生成的hello可执行文件,已经无法在虚拟机的Ubuntu系统下运行了,它会打印格式错误: 

        我们直接推送到Tina中运行:

        

         然而,这个时候仍然报错:/bin/sh: ./hello: not found。这个问题可以定位到动态链接库上,参考这篇文章:交叉编译环境以及开发板上-/bin/sh: ./hello: not found_船过水无痕的博客-CSDN博客

        使用静态编译可以暂时解决这个问题,当然永久解决的方法文章也有介绍。

        再次推送到Tina运行:

         

         成功打印Hello, world!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值