在Debian中建立Beaglebone black的应用开发环境之五:来一个hello world

前面,我们花4篇blog记录了一个基于debian的、采用armhf的、最最基本的应用开发环境的设置。按照惯例,还是需要一个hello world来测试一下。

前面说过,一个最基本应用开发过程是:编码——编译、链接、调试——发布应用——测试应用

一、编码:简单的写一个hello应用

打开host端的debian,使用nano(或vim、gedit,或者其它的IDE),建立一个最简单的hello.cpp应用,你可以采用以下代码。

我是使用nano,单独设置了个目录存放,测试代码如下:

   1: #include <stdio.h>  
   2:  
   3: int  main(void)
   4: {
   5:     for (int i = 0; i < 10; i++)
   6:     {
   7:         printf("%d Hello BeagleBone Black!\n", i);     
   8:     }
   9:     return 0;
  10: }
保存、退出。


二、编译、链接、生成一个可执行文件

采用arm-linux-gnueabihf-g++编译,生成一个名字为hello的应用程序。

进入到源码所在的目录,采用以下命令编译、链接、生成应用。

   1: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$ arm-linux-gnueabihf-g++ -o hello hello.cpp
好了,如果没有问题,使用ls可以查看到应用程序hello已经生成。

   1: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$ ls
   2: hello  hello.cpp
如果你想试一下在host端可否运行,可以试一下。

   1: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$ ./hello
   2: -bash: ./hello: 无法执行二进制文件
   3: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$
看到提示没有:无法执行二进制文件。为什么,因为生成的是基于ARM的二进制代码,而主机端是x86的,因而主机端是无法执行的。


三、发布应用

使用gftp将应用发布到BBB吧。

 

在主机端打开gftp,将生成的hello发布到BBB上。

   1: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$ gftp

 

 

在Debian中建立Beaglebone black的应用开发环境之五:来一个hello world_第1张图片

发布成功后,退出gftp。

在主机的终端里使用SSH控制BBB,看看是否真的发布成功了。

   1: robeer@RobeerDebianPC:~/BBBProject/AppTest/Hello$ ssh [email protected]
   2: [email protected]'s password: 
   3: Linux arm 3.8.13-bone40 #1 SMP Fri Jan 31 07:31:37 UTC 2014 armv7l
   4:  
   5: The programs included with the Debian GNU/Linux system are free software;
   6: the exact distribution terms for each program are described in the
   7: individual files in /usr/share/doc/*/copyright.
   8:  
   9: Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
  10: permitted by applicable law.
  11: Last login: Tue Mar 18 10:08:50 2014 from 192.168.100.100
  12: debian@arm:~$ 
已经可以通过ssh控制BBB,查看BBB的文件:

   1: debian@arm:~$ cd ./BBBApp
   2: debian@arm:~/BBBApp$ ls
   3: hello
看到了hello,说明已经发布成功了。


四、执行应用,进行测试

  为了保证运行成功,首先将hello的属性改为可执行,然后再来执行。

   1: debian@arm:~/BBBApp$ chmod a+x hello
执行应用:
   1: debian@arm:~/BBBApp$ ./hello
   2: 0 Hello BeagleBone Black!
   3: 1 Hello BeagleBone Black!
   4: 2 Hello BeagleBone Black!
   5: 3 Hello BeagleBone Black!
   6: 4 Hello BeagleBone Black!
   7: 5 Hello BeagleBone Black!
   8: 6 Hello BeagleBone Black!
   9: 7 Hello BeagleBone Black!
  10: 8 Hello BeagleBone Black!
  11: 9 Hello BeagleBone Black!
看到了吧,已经执行成功了,这表示你的基本的交叉编译环境已经完全建立好了。


PS:

1、通过5篇的blog,相信你对cross-toolchain的概念、作用都有了深入的了解,我介绍的比较简略,中间大家可能会有许多问题,其实这些都是可以在网上google或baidu找寻答案的,一旦你养成这个习惯,相信你的水平会提升的很快。同时,希望你也能够用文字记录你的过程,这也是一种分享精神。

2、实在有需要问的话,请评论或留言吧。没有什么问题的话,一般我都会回。

3、E文很重要!


你可能感兴趣的:(在Debian中建立Beaglebone black的应用开发环境之五:来一个hello world)