boost安装_在VxWorks 7上编译和运行Boost C++ 应用程序

1 简介

Boost项目提供了一组全面的,经过同行评审的,可移植的C++源代码库,这些库可与C++标准库一起很好地工作。

VxWorks是由Wind River构建的实时操作系统。

VxWorks支持Boost C++库的子集。支持的库是:

Atomic
Chrono
Container
Context
Contract
Date Time
Exception
Filesystem
Graph
Log
Math
Program Options
Random
Regex
Serialization
Timer
Type Erasure
BOOST Tests

在先前的文章(给VxWorks 7添加Boost C++库支持)中,我们解释了如何编译并启用boost的VxWorks内核,本文将描述如何从boost.org网站移植一些boost示例代码,并在VxWorks 7目标系统上运行它。

2 前提

本文的说明假定你正在使用:

  • Windows工作站,其上安装了以下软件:

  • 风河VxWorks 7,SR0620

  • Windows版Git

  • 你已经完成了上一片文章,“给VxWorks 7添加Boost C++库支持”:

  • https://www.gaitpu.com/vxworks/adding-vxworks-7-boost-c++-library-support.html

3 相关文件

有关本主题的更多信息,请参考:

风河文档:

  • VxWorks对第三方软件的支持

非风河文档:

  • https://www.boost.org/

4 在WINDRIVER WORKBENCH中创建一个实时进程(RTP)项目

4.1 基于VxWorks源代码编译(VSB)创建一个boostvsb的RTP

你必须基于先前文章中启用了Boost的VxWorks项目创建RTP项目。在workbench中,执行一下操作:

File > New > Wind River Workbench Project

选择一个 Real Time Process Project

9599e24e1e405be13bc2cc1178d4e06a.png

图1:选择RTP编译类型

将项目命名为“boostapp”,你需要基于在上一篇文章中创建的VSB来创建工程,VSB之前被称为“boostvsb”,选择Browse,找到文件boostvsb/vsb.vxconfig,这样RTP项目就基于“boostvsb”了。

4.2 将RTP.C重命名为RTP.CPP

RTP项目源文件必须重命名为“rtp.cpp”,因为这个boost源文件是C++而不是C的源代码,因此必须正确编译。

在Workbench Project Explorer view中右键单击“rtp.c”,选择“Rename”,然后将文件名设置为“rtp.cpp”。

961adccaabafbcda79d59e25a2c4bb69.png

图2:重命名源码文件

5 找到BOOST库示例代码

5.1 访问boot.org网站

在网络浏览器中,访问到https://www.boost.org。“boostvsb”项目是包含了boost数学库后建立的,因此我们将选择boost.org上一些使用了数学库的示例代码。

5.2 找到几何示例代码

选择boost的“几何库”示例,访问至https://www.boost.org/doc/libs/1_54_0/libs/geometry/doc/html/index.html,在“Spatial Indexes”下,单击“Examples”。

87fa522a7dab4de82acbd81164fe6252.png

图3:找到几何示例代码

选择示例“Index of polygons stored in vector.”

490db1dab68e9680844da80e8b214fb8.png

图4:选择存储在向量中的多边形的索引

这提供了示例源代码,该应用程序使用boost数学库来创建多边形数学对象的树,然后询问并输出其值。highlight此源代码并复制它。

6 将BOOST应用程序打包成一个RTP项目

6.1 将源代码复制到rtp.cpp文件

请确保负责所有的boost网站示例源代码行并替换“rtp.cpp”文件里的内容。

3caee35418986ebab9f0101a6d7119a5.png

图5:将源代码复制到RTP项目中

6.2将boost_system库添加到RTP构建属性

右键单击boostapp RTP,然后选择“属性Properties”,选择“Build Properties”,“Libraries”,单击"Add to all", 选择"Add library file (-I)" 然后输入: "-I boost_system"

35c9b87b12a2f61c5590ecc5586cc1a7.png

图6:将Core Boost库添加到RTP项目

点击"Apply and Close",然后点击 "Yes" 来重新索引项目。现在可以重新编译这个项目,编译应该可以成功完成。如果你遇到任何编译错误提示boost库缺失的话,你必须从库的对话框的编译属性(Build Properties)里手动添加这些库。

注意:如果你在你的RTP代码里面使用了boost现成库,你必须增加(-I boost_thread)作为一个额外的RTP库。

7 运行这个BOOST应用程序RTP

7.1 从Workbench启动VxWorks Simulator目标机

在Workbench的target connection窗口中,为你在上一遍文章中创建的“boostvip” VIP项目来创建一个VxWorks模拟器连接。

a4ac9cb47b2be0f290cf1091ff5528e4.png

图7:创建VxWorks Simulator目标连接

启动目标机

7.2 调整内核调度程序以启用时间分片

在VxWorks目标内核shell中,输入以下内容:

-> kernelTimeSlice(1)

Boost应用程序可以在此VxWorks内核配置上更成功地运行。

7.3 在目标上运行bootapp RTP

右键单击Workbench中的“boostapp”项目,然后选择“Run/Debug Real Time Process”,观察boost多边形应用程序在目标上运行,并从VxWorks仿真目标机的控制台生成输出。

6df14aba72dab6ec95f84afcb83f797b.png

图8:运行Boost Polygon应用程序

点击“阅读原文”查看更多相关文章

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值