1.使用范围
本文档适用于在RealEvo-IDE开发环境下移植C++工程的用户,使用者应熟悉使用RealEvo-IDE开发环境,并具有C++语言编程的基础知识。html
2. 准备工做
2.1 环境准备
在使用以前,须安装有翼辉信息开发的集成开发套件,因为系统上安装的防火墙软件或者杀毒软件可能会影响到集成开发软件的使用,所以,在使用本套件前请关闭计算机上的windows防火墙以及杀毒软件。c++
因后续操做须要在模拟器上进行展现,因此在进行后续章节操做前,请完成mini2440模拟器的配置并启动,具体配置步骤请参考图2‑1中《mini2440模拟器配置启动》。编程
2.2 资源准备
移植C++工程前,应从客户处或经过其余方式得到相关C++工程源码,并确保工程源码的正确性。本次技术笔记资源准备如图2‑1所示。windows
图 2-1 资源准备app
其中:mini2440_base文件为本次移植依赖的base工程,C++工程源码文件为本次移植的工程源码。函数
3. 技术实现
3.1 导入base工程
双击打开RealEvo-IDE软件,选择菜单“File-Import”,弹出界面如图3‑1所示。spa
图3-1 导入工程htm
点击“Next”,弹出如图3-2所示界面。blog
图3-2 导入mini2440_base工程ip
点击“Finish”,完成mini2440_base工程的导入。
3.2 新建c++_app工程
新建c++_app工程,操做步骤如图3‑3所示(新建c++工程时候,请勾选图3‑3中第五步的选项)。
图3-3 新建c++_app工程
点击“Next”,弹出如所图3‑4示界面。
图3-4 base工程选择
点击“Finish”,完成c++_app工程的建立。
3.3 导入c++_app工程的源文件
删除c++_app工程中的c++_app.cpp文件,而后将图2‑1所示的源文件导入到src目录下,如图3‑5所示(能够直接进行复制粘贴)。
图3-5 导入c++_app工程源文件
3.4 配置c++_app工程
选中c++_app工程,右击工程选择“Properities”选项,设置c++_app工程的头文件路径,如图3‑6所示(本次c++工程依赖头文件较多,实际移植过程以实际状况为准)。
图3-6 配置头文件路径
点击“apply”,而后进行目标设备建立,如图3‑7所示(本次移植在mini2440模拟器上演示,实际移植过程以实际状况为准)。
图3-7 设置目标机IP
点击“apply”,进行依赖的库设置,操做步骤如图3‑8所示。
图3-8 依赖库设置
注:本例中c++_app工程须要依赖glib246.so,XCore.so,proxy.so,实际状况根据移植须要选择依赖的库文件。
3.5 编译上传
配置完成后,编译c++_app工程,操做如图3‑9所示。
图3-9 编译工程
编译完成后,上传工程,操做如图3‑10所示。
图3-10 上传工程
3.6 模拟器上模拟运行
执行3.5节中上传的文件,操做如图3-11所示。
图3-11 执行目标程序
能够获得如图3-12所示结果。
图3-12 程序执行结果
4. 移植中错误总结
4.1 引用头文件错误
在编译阶段,可能会遇到头文件找不到路径的错误,如图4-1所示。
图4-1 头文件路径错误
解决这类问题的方法为修改工程属性,加入相应的头文件路径,如图4-2所示。注意添加头文件路径时,不要拷贝头文件,只须要把相应的头文件路径添加正确便可。
图4-2 加入头文件路径
4.2 symbol查找
在执行阶段,遇到找不到symbol的错误,如图4-3所示。
图4-3 symbol错误
此类问题总结缘由以下:
1. 结构体未定义
2. 变量为定义
3. 函数未定义
解决方法为:在SourceInsight中或者RealEvo-IDE下全局搜索,找到该symbol定义的地方,若是没有定义请根据语义或者在其原本环境下的定义实现该symbol的定义,若是已经定义,则多是该文件没有加入编译。
因为c++中存在方法重载,因此编译器存在命名粉碎规则,此类问题解决方案参考C++编译器的命名粉碎规则。
5. 小结
本文档介绍了SylixOS下移植C++工程的过程,并介绍移植过程当中可能出现的问题以及解决相应问题的思路。
6. 参考资料
《RealEvo-IDE APP使用手册》
《Linux工程移植到SylixOS技术笔记》
关于C++命名修饰的资料:
http://hipercomer.blog.51cto.com/4415661/855223
http://blog.sina.com.cn/s/blog_67ae19eb0101aygx.html