欧美美乳视频网站在线观看_日韩视频在线免费观看_国产福利一区二区在线观看_久久99日韩_天天看天天干_成人xxxx

400-821-6015
行業(yè)資訊
您當(dāng)前的位置:首頁 ? 行業(yè)資訊 ? 行業(yè)資訊
內(nèi)部資訊行業(yè)資訊

C/C++的包管理以及SOA汽車軟件開發(fā)中的運(yùn)用

發(fā)布日期:2021-04-01

為什么要考慮C/C++的包管理

自從軟件定義汽車的概念風(fēng)靡業(yè)界,大家已經(jīng)清楚認(rèn)識(shí)到未來的汽車產(chǎn)品開發(fā)中,軟件會(huì)占非常重要的地位。

與傳統(tǒng)MCU開發(fā)的不同,在提出SOA面向服務(wù)架構(gòu),基于異構(gòu)SoC開發(fā)的時(shí)候,可以預(yù)想到的是會(huì)有越來越多的應(yīng)用,以包的形式部署在上面。

關(guān)于汽車軟件開發(fā)的關(guān)注的,或者說難點(diǎn),可以閱讀之前發(fā)布的文章:汽車SOA架構(gòu)技術(shù)要點(diǎn)及挑戰(zhàn)

尤其是作為底層軟件供應(yīng)商,或者系統(tǒng)集成供應(yīng)商(也許是OEM自己)來說,如此龐大的基于C/C++的大型項(xiàng)目,如果仍舊按照傳統(tǒng)方式進(jìn)行管理,肯定會(huì)遇到包括但不限于以下問題:

繁雜的構(gòu)建系統(tǒng):gcc, clang, qcc, Ninja, cmake, makefiles..

晃眼的構(gòu)建設(shè)置:操作系統(tǒng),架構(gòu),編譯器類型/版本等等

依賴不可見:無法模塊化地建立依賴關(guān)系

不像js有npm,python有pypi等等,C/C++似乎很難讓你回答出一個(gè)好用又靠譜的包管理器。

尤其是汽車軟件開發(fā)的測(cè)試與驗(yàn)證很多時(shí)候都和硬件打交道,非常消耗時(shí)間,我們勢(shì)必要考慮如何在轉(zhuǎn)移到SOA架構(gòu)時(shí)高效地利用CI/CD系統(tǒng),進(jìn)行開發(fā)與驗(yàn)證呢?總不能開發(fā)人員對(duì)某一個(gè)包的改動(dòng),還要參考各種依賴,以及重復(fù)構(gòu)建吧。


Conan

我們先來看一下官方介紹是怎么解釋的:

Conan is a dependency and package manager for C and C++ languages. It isfree and open-source, and it works in all platforms: Windows, Linux, OSX, FreeBSD, Solaris, etc. and can be used to develop for all targets including embedded, mobile (iOS, Android), bare metal. It also integrates with all build systems like CMake, Visual Studio (MSBuild), Makefiles, SCons, etc., including proprietary ones.

也就是說,Conan是一款免費(fèi)且開源的C/C++包管理器,可以運(yùn)行在多種平臺(tái)上,也可以用來給不同的硬件平臺(tái)做開發(fā),支持CMake, MSBuild, Makefiles, SCons等多種構(gòu)建系統(tǒng)。

對(duì)應(yīng)于js有npm,conan也有Jfrog Artifactory可以用,這樣就無需重復(fù)構(gòu)建已經(jīng)有的包。當(dāng)然,如果公司有要求,肯定是要建立私有服務(wù)器的。

二進(jìn)制包的構(gòu)建


如圖所示,你需要指定你的源文件,包括一些構(gòu)建變量等等,最終可以生成對(duì)應(yīng)的輸出文件。

如果用的是不同的構(gòu)建系統(tǒng),也只需要編寫對(duì)應(yīng)的build info

當(dāng)你基于同樣的源文件但是設(shè)定不同的構(gòu)建選項(xiàng)時(shí),你可以得到一個(gè)recipe生成的不同包:


二進(jìn)制包的管理

Conan最重要的功能之一就是,它可以為任何平臺(tái),任何配置創(chuàng)建并管理已編譯的而僅是文件,這樣就能夠避免重復(fù)構(gòu)建,為開發(fā)和持續(xù)集成節(jié)省大量時(shí)間,與此同時(shí),還能提供良好的可再生性和文件追溯性。

這些關(guān)于包的配置,是寫在"connanfile.py"中,需要定義包的依賴,源代碼(路徑),構(gòu)建方式等等。一個(gè)recipe可以生成很多二進(jìn)制文件,每一個(gè)都對(duì)應(yīng)于一個(gè)某個(gè)特定的操作系統(tǒng),架構(gòu),編譯器,構(gòu)建類型等等。

也就是說,如果你的同事也要構(gòu)建工程時(shí),如果你已經(jīng)上傳過對(duì)應(yīng)的二進(jìn)制文件mylib,那么當(dāng)他用相同配置構(gòu)建時(shí),conan可以幫你的同事直接從服務(wù)器獲取,而不需要花時(shí)間重新構(gòu)建:

Conan的安裝

Conan有多種安裝方式,但官方推薦的是使用pip,即:

pip install conan

另外,你需要確保電腦上Python版本>=3.5

關(guān)于Conan的使用,請(qǐng)關(guān)注后續(xù)文章。


汽車軟件開發(fā)中的應(yīng)用

正如文章開始所說,現(xiàn)在各家都在爭(zhēng)取做自己的汽車os,當(dāng)應(yīng)用開發(fā)者拿到SDK后,借助Conan的功能,快速建立應(yīng)用開發(fā)工程,編寫代碼邏輯,并且構(gòu)建完成二進(jìn)制文件方便后續(xù)的集成測(cè)試以及部署/更新,對(duì)于管理內(nèi)部或者諸多供應(yīng)商的App會(huì)有特別大的幫助。


轉(zhuǎn)載汽車電子相關(guān)文章

轉(zhuǎn)自汽車電子與軟件

上海創(chuàng)程車聯(lián)網(wǎng)絡(luò)科技有限公司版權(quán)所有 滬ICP備11045498號(hào)-1   技術(shù)支持:網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲精品乱码久久观看网 | 亚洲国产精品乱码一区二区 | 911精品国产亚洲日本美国韩国 | 国产在线精品观看 | av在线网页| 国产一区二区三区午夜 | www国产成人免费观看视频深夜成人网 | 中文无码一区二区三区在线观看 | 一级特黄在线 | 中文天堂国产最新 | 一区二区三区手机在线观看 | 亚洲成人av动漫 | 日本高清aⅴ毛片免费 | 日本成人片网站 | 视频免费精品 | 区二三区四区精华日产一线二线三 | 日韩黄色在线网站 | 日韩精品123| 久久久久久久婷婷 | 日本韩国最新免费观看 | 成人免费在线观 | 日韩高清不卡av | a级毛片高清免费视频在线 深夜草逼逼 | 无码人妻精品中文字幕 | 天堂视频免费 | 国色天香乱码区 | www.com.cn成人| 亚洲欧美日韩免费 | 中文字幕 日本 | 国产女人高潮毛片 | 国产偷录视频叫床高潮 | av夜夜操 | 精品无码国产污污污免费网站国产 | 国产免费拔擦拔擦8x在线牛 | 日本高清黄色片 | 丰满少妇伦精品无码专区 | 久久精品免费一区二区三 | 亚洲夜夜操 | 麻豆精品自拍 | 国产精品视频一区二区三 | 163免费邮箱登录入口手机版 |