快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

SylixOS下移植C++工程-创新互联

1.使用范围

   本文档适用于在RealEvo-IDE开发环境下移植C++工程的用户,使用者应熟悉使用RealEvo-IDE开发环境,并具备C++语言编程的基础知识。

武乡ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

2. 准备工作

2.1 环境准备

   在使用之前,须安装有翼辉信息开发的集成开发套件,由于系统上安装的防火墙软件或者杀毒软件可能会影响到集成开发软件的使用,因此,在使用本套件前请关闭计算机上的windows防火墙以及杀毒软件。

   因后续操作需要在模拟器上进行展示,所以在进行后续章节操作前,请完成mini2440模拟器的配置并启动,具体配置步骤请参考图2-1中《mini2440模拟器配置启动》。

2.2 资源准备

   移植C++工程前,应从客户处或通过其他方式获得相关C++工程源码,并确保工程源码的正确性。本次技术笔记资源准备如图2-1所示。

图 2-1 资源准备

   其中:mini2440_base文件为本次移植依赖的base工程,C++工程源码文件为本次移植的工程源码。

3. 技术实现

3.1 导入base工程

   双击打开RealEvo-IDE软件,选择菜单“File-Import”,弹出界面如图3-1所示。

图3-1 导入工程

   点击“Next”,弹出如图3-2所示界面。

图3-2 导入mini2440_base工程

   点击“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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:SylixOS下移植C++工程-创新互联
新闻来源:http://6mz.cn/article/cchjgh.html

其他资讯