这篇文章给大家分享的是有关Tool中如何实现源码编译的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了故城免费建站欢迎大家使用!
使用VIP编译VxWorks Image时,可能会遇到某些组件不可选,甚至找不到的情况
这是因为IDE工具(Tornado/Workbench)没有找到相应的库文件。
风河在VxWorks中提供了很多很多组件,其中有些组件只提供了源码,主要是与connectivity、security、 management相关的组件,例如Wind River Firewall, Wind River IPsec and IKE, Wind River Mobile IP,以及上图中的CRYPTO等。要想在VxWorks中调用它们,就需要先将这些源码编译为库。还有一些组件既提供了源码,也提供了库文件,但是出于某种原因可能需要修改源码,或者调整参数,这时候也需要重新编译源码。
VxWorks 5.x
VxWorks 5.x的时候,要想编译源码,首先需要在Host系统的命令行工具里调用$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/torVars.bat来设置VxWorks的环境变量,然后在$(TGT_DIR)/src目录下运行make命令就可以了
make的参数通常包括CPU和TOOL
不过在VxWorks5.x时,编译器diab还是分开销售的,大多数用户并没有安装,因此TOOL的值只能是编译器gnu了,写不写也就无所谓了。而CPU的值,取决于使用什么样的target,可以从其BSP的makefile文件中获得
VxWorks 6.1-6.6
到了VxWorks 6,VxWorks提供了更多的组件。除了使用命令行,Workbench还提供User-Defined Project来为VxWorks 6.1-6.6编译源码。
新建一个User-Defined Project,选择相应的VxWorks做为Target operating system
然后将Project的位置设置到VxWorks所在的文件夹
最重要的是,根据target的情况来填写Build command
CPU的值,同样是参考target BSP的makefile文件;而这时候的TOOL,一般gnu和diab都是可以选的了,根据项目的实际需求来决定。还有几个参数
comp-xxx表示库的作用空间,取值comp-kernel表示这是kernel的库,这也是默认值;取值comp-usr表示这是user mode的库,也就是给RTP用的
FEATURE_SET表示哪种platform,需要根据实际情况来选择,例如FEATURE_SET=pne,不过一般用户都是只安装一种platform,因此这个参数就不用填写了。常见的platform有pne、pid、pad、pcd, 还有一种叫gpp,它是不包含源码的,因此也就不需要再编译了
Platform for Network Equipment
Platform for Industrial Devices
Platform for Automotive Devices
Platform for Consumer Devices
General Purpose Platform
VXBUILD表示是否配置为SMP模式,不填写就表示UP,因此填写的话,只能是VXBUILD=SMP了
ADDED_CFLAGS表示C的编译选项,如果想使用更多的选项,一般使用+=符号,例如ADDED_CFLAGS+=-g
ADDED_C++FLAGS表示C++的编译选项
而要想清除已有的库,clean rule是TARGET=rclean
VxWorks 6.7-6.9
到了VxWorks 6.7,风河不再建议使用命令行或者User-Defined Project,因为这样会破坏系统自带的库文件。而是提供了一种非常强大的工程:VxWorks Source Build Project。使用这种VSB,可以图形化的定制所需组件以及参数,并且编译得到的库会单独存放。因此,可以为不同的CPU或BSP编译多种不同的库。
创建VSB时,可以选择基于某种BSP或者某种CPU。基于BSP编译时,编译工具会针对BSP进行专门的优化,可以提供更好的性能和更小的代码尺寸。基于CPU编译时,得到的库可以用于支持该CPU的所有BSP。
创建VSB之后,可以根据实际需求对其进行配置。例如使能CRYPTO组件
添加FIREWALL组件
然后编译工程,不过高版本的VxWorks中包含的组件有点多,编译时间会有些长,一般会超过30分钟
VSB编译完成后,就会在VSB的目录里得到新的库文件。这时候需要创建新的VIP才能使用这些新的库文件。新建的VIP不像之前的工程是基于一个BSP的,而是要基于这个VSB工程
在新建的VIP里,就可以看到之前的CRYPTO变成可选的了,并且多出了FIREWALL组件
当然了,还有一种在VIP中不能使用某种组件的情况,那就是:没有安装(其实就是没有购买了),例如只安装了两张CD的VxWorks 5.5或者gpp的VxWorks 6.x ^_^
感谢各位的阅读!关于“Tool中如何实现源码编译”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
新闻标题:Tool中如何实现源码编译
转载注明:http://lswzjz.com/article/jhhgis.html