菜鸟视角的openwrt(三) 建立自己的openwrt c/c++程序开发IDE环境

        关于如何使用OPENWRT SDK来编译自己的程序,网上有大把的文章可供参考,但如果你要开发并调试自己的c/c++程序,如何按这些方法来做,效率未免低了一点。

        对makefile不是很熟的c/c++开发人员,总是依赖于IDE环境为我们自动生成,比如我。下面给大家介绍一种利用eclipse的IDE环境编译调试openwrt下的c/c++程序的方法。

        我喜欢使用CentOS6.8_X86, 主要是选择“开发工作站“安装后, gcc是现成的,eclipse 加c/c++所需插件都装现成的,直接就可以进入c程序开发。遗憾的是, gcc和eclipse版本低了点,不过能用就好。

        利用eclipse配置openwrt的交叉编译环境,可以里利用eclipse CDT插件为我们自动产生makefile文件,我们不用操心makefile的编写,专注于程序开发。 我们唯一需要做的就是配置交叉编译环境。

        在 菜鸟视角的openwrt(二), 我们通过编译OPENWRT固件, 已经编译好了MT7628的交叉编译工具链,可以按照openwrt的软件包makefile制作规范,添加并编译自己开发的应用程序。

          不过在程序开发阶段, 使用本文介绍的方法,会帮你节省不少调试时间,下面是IDE开发环境的配置:

1) 使用eclipse工程向导,生成一个c++ project(不要使用c project, 原因后面叙述)

        File -> new -> c++ project ->可执行文件->Cross-compile Project (注意选择交叉编译工程)

        工程向导会提示你输入交叉编译工具链的 前缀和路径:

          MT7628用的是:  mipsel-openwrt-linux-

           我机器上的路径是: /home/MT7628/YDH/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2

            注意不是bin目录: /home/MT7628/YDH/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin

         点击下一步, 点击按钮“高级设置”

                 i)  弹出对话框中,配置Cross-G++ Linker, 把g++改成gcc

                 当然可以不改, 但不改的话,编译出来的程序需要stdc++库的支持,  你的openwrt需要安装stdc++库。

                  如果你本身就是c++的代码, 那就更不能改了。

                ii) 弹出对话框中,配置Cross-Gcc compile

                      配置openwrt SDK的c代码include目录, 这个都懂吧               

                iii) 弹出对话框中,配置Cross-Gcc++ compile

                      配置openwrt SDK的c++代码include目录, 这个都懂吧

2)   配置环境变量

                    OPENWRT 交叉编译器编译时, 需要环境变量: STAGING_DIR

                  eslipse在工程属性中, C/C++构建, 环境变量下, 添加该环境变量, 值为/home/MT7628/YDH/staging_dir, 指向Openwrt SDK的/staging_dir目录                     

3)    剩下的就是在工程中建立源文件夹, 添加自己的头文件,C源文件了

       完了就直接编译就可以了。

4) 在开发板上运行编译好的程序

   编译好的程序必须在openwrt环境下才能运行, 所以要调试程序的话,需要把程序放到板子上去跑。

   CentOS开发工作站安装后,已经安装好了apache服务, 开发版可以通过http从开发主机下载编译号的程序

   为了使编译好的程序自动copy到www服务的站点下, 你可以在eclipse工程属性的构建步骤->构建后步骤中中设置一条copy命令,把编译好的文件copy到/var/www/html下

        我的命令:cp /root/workspace/mtkSpeaker/Release/mtkSpeaker  /var/www/html/mtkSpeaker

        使用ssh -l root xxx.xxx.xxx.xxx   连接到开发板, xxx.xxx.xxx.xxx是开发板IP地址

         登录后, 使用命令 :  

           cd /tmp           //tmp目录位于内存中, 掉电就丢失, 但是速度快啊, 不伤FLASH,本来就是调试嘛

           wget    yyy.yyy.yyy.yyy/mtkSpeaker            //yyy.yyy.yyy.yyy是开发主机地址

           chmod U+X mtkSpeaker

           ./mtkSpeaker

          就可以完成程序的下载和运行了, 你可以直接编个shell脚本来执行这个过程

这个比较强悍: https://blog.csdn.net/haifengid/article/details/51778114

有时间去试试!



猜你喜欢

转载自blog.csdn.net/twd_1991/article/details/80387923