溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Tool中如何實(shí)現(xiàn)源碼編譯

發(fā)布時(shí)間:2021-12-22 10:57:01 來源:億速云 閱讀:149 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家分享的是有關(guān)Tool中如何實(shí)現(xiàn)源碼編譯的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

使用VIP編譯VxWorks Image時(shí),可能會(huì)遇到某些組件不可選,甚至找不到的情況

Tool中如何實(shí)現(xiàn)源碼編譯

這是因?yàn)镮DE工具(Tornado/Workbench)沒有找到相應(yīng)的庫(kù)文件。
風(fēng)河在VxWorks中提供了很多很多組件,其中有些組件只提供了源碼,主要是與connectivity、security、 management相關(guān)的組件,例如Wind River Firewall, Wind River IPsec and IKE, Wind River Mobile IP,以及上圖中的CRYPTO等。要想在VxWorks中調(diào)用它們,就需要先將這些源碼編譯為庫(kù)。還有一些組件既提供了源碼,也提供了庫(kù)文件,但是出于某種原因可能需要修改源碼,或者調(diào)整參數(shù),這時(shí)候也需要重新編譯源碼。

VxWorks 5.x
VxWorks 5.x的時(shí)候,要想編譯源碼,首先需要在Host系統(tǒng)的命令行工具里調(diào)用$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/torVars.bat來設(shè)置VxWorks的環(huán)境變量,然后在$(TGT_DIR)/src目錄下運(yùn)行make命令就可以了

Tool中如何實(shí)現(xiàn)源碼編譯

make的參數(shù)通常包括CPU和TOOL

Tool中如何實(shí)現(xiàn)源碼編譯

不過在VxWorks5.x時(shí),編譯器diab還是分開銷售的,大多數(shù)用戶并沒有安裝,因此TOOL的值只能是編譯器gnu了,寫不寫也就無所謂了。而CPU的值,取決于使用什么樣的target,可以從其BSP的makefile文件中獲得

Tool中如何實(shí)現(xiàn)源碼編譯

VxWorks 6.1-6.6
到了VxWorks 6,VxWorks提供了更多的組件。除了使用命令行,Workbench還提供User-Defined Project來為VxWorks 6.1-6.6編譯源碼。

Tool中如何實(shí)現(xiàn)源碼編譯
新建一個(gè)User-Defined Project,選擇相應(yīng)的VxWorks做為Target operating system

Tool中如何實(shí)現(xiàn)源碼編譯
然后將Project的位置設(shè)置到VxWorks所在的文件夾

Tool中如何實(shí)現(xiàn)源碼編譯 最重要的是,根據(jù)target的情況來填寫B(tài)uild command

Tool中如何實(shí)現(xiàn)源碼編譯

CPU的值,同樣是參考target BSP的makefile文件;而這時(shí)候的TOOL,一般gnu和diab都是可以選的了,根據(jù)項(xiàng)目的實(shí)際需求來決定。還有幾個(gè)參數(shù)

  • comp-xxx表示庫(kù)的作用空間,取值comp-kernel表示這是kernel的庫(kù),這也是默認(rèn)值;取值comp-usr表示這是user mode的庫(kù),也就是給RTP用的

  • FEATURE_SET表示哪種platform,需要根據(jù)實(shí)際情況來選擇,例如FEATURE_SET=pne,不過一般用戶都是只安裝一種platform,因此這個(gè)參數(shù)就不用填寫了。常見的platform有pne、pid、pad、pcd, 還有一種叫g(shù)pp,它是不包含源碼的,因此也就不需要再編譯了

    • 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的編譯選項(xiàng),如果想使用更多的選項(xiàng),一般使用+=符號(hào),例如ADDED_CFLAGS+=-g

  • ADDED_C++FLAGS表示C++的編譯選項(xiàng)

  • 而要想清除已有的庫(kù),clean rule是TARGET=rclean

VxWorks 6.7-6.9
到了VxWorks 6.7,風(fēng)河不再建議使用命令行或者User-Defined Project,因?yàn)檫@樣會(huì)破壞系統(tǒng)自帶的庫(kù)文件。而是提供了一種非常強(qiáng)大的工程:VxWorks Source Build Project。使用這種VSB,可以圖形化的定制所需組件以及參數(shù),并且編譯得到的庫(kù)會(huì)單獨(dú)存放。因此,可以為不同的CPU或BSP編譯多種不同的庫(kù)。

Tool中如何實(shí)現(xiàn)源碼編譯創(chuàng)建VSB時(shí),可以選擇基于某種BSP或者某種CPU?;贐SP編譯時(shí),編譯工具會(huì)針對(duì)BSP進(jìn)行專門的優(yōu)化,可以提供更好的性能和更小的代碼尺寸?;贑PU編譯時(shí),得到的庫(kù)可以用于支持該CPU的所有BSP。 Tool中如何實(shí)現(xiàn)源碼編譯

創(chuàng)建VSB之后,可以根據(jù)實(shí)際需求對(duì)其進(jìn)行配置。例如使能CRYPTO組件

Tool中如何實(shí)現(xiàn)源碼編譯

添加FIREWALL組件

Tool中如何實(shí)現(xiàn)源碼編譯

然后編譯工程,不過高版本的VxWorks中包含的組件有點(diǎn)多,編譯時(shí)間會(huì)有些長(zhǎng),一般會(huì)超過30分鐘
VSB編譯完成后,就會(huì)在VSB的目錄里得到新的庫(kù)文件。這時(shí)候需要?jiǎng)?chuàng)建新的VIP才能使用這些新的庫(kù)文件。新建的VIP不像之前的工程是基于一個(gè)BSP的,而是要基于這個(gè)VSB工程

Tool中如何實(shí)現(xiàn)源碼編譯

在新建的VIP里,就可以看到之前的CRYPTO變成可選的了,并且多出了FIREWALL組件

Tool中如何實(shí)現(xiàn)源碼編譯

Tool中如何實(shí)現(xiàn)源碼編譯


當(dāng)然了,還有一種在VIP中不能使用某種組件的情況,那就是:沒有安裝(其實(shí)就是沒有購(gòu)買了),例如只安裝了兩張CD的VxWorks 5.5或者gpp的VxWorks 6.x   ^_^


感謝各位的閱讀!關(guān)于“Tool中如何實(shí)現(xiàn)源碼編譯”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI