亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向軟件應(yīng)用國產(chǎn)化移植的“腳手架”構(gòu)建方法研究

        2021-12-25 02:10:06李武松鐘立俊段國棟
        科學(xué)技術(shù)創(chuàng)新 2021年20期
        關(guān)鍵詞:麒麟國產(chǎn)化銀河

        李武松 鐘立俊 段國棟

        (西南電子設(shè)備研究所,四川成都 610036)

        1 概述

        近年來,自主可控需求增強(qiáng),軟件應(yīng)用國產(chǎn)化移植變得非常重要,然而不同平臺(tái)有不同的系統(tǒng)特性,Win32 應(yīng)用軟件移植到國產(chǎn)化平臺(tái)上,缺少較好的“腳手架”移植輔助工具[1]。本文以非嵌入式平臺(tái)銀河麒麟和嵌入式平臺(tái)DeltaOS 為例,研究Win32平臺(tái)基于Visual Studio 2010(以下簡(jiǎn)稱“VS2010”)開發(fā)的C/C++程序國產(chǎn)化移植過程中“腳手架”的構(gòu)建方法,并結(jié)合實(shí)踐對(duì)比分析,提出“腳手架”的構(gòu)建有助于大大提升國產(chǎn)化移植效率。

        2 銀河麒麟

        銀河麒麟(Kylin)是由國防科技大學(xué)研制的一套具有中國自主知識(shí)產(chǎn)權(quán)的開源服務(wù)器操作系統(tǒng),已廣泛應(yīng)用于軍工、政府、金融等眾多領(lǐng)域[2]。像其它Linux 操作系統(tǒng)移植一樣,軟件開發(fā)編譯需要編寫makefile,這對(duì)已經(jīng)習(xí)慣于Win32 操作系統(tǒng)可視化編程開發(fā)者而言,剛開始會(huì)非常不適應(yīng),更何況各種各樣的配置。因此如果有一種方式能讓makefile 生成變得模板化、自動(dòng)化,能夠解決首次接觸后臺(tái)國產(chǎn)化移植“暈頭轉(zhuǎn)向”的現(xiàn)實(shí)問題,將大大提高非嵌入式操作系統(tǒng)銀河麒麟的移植效率。

        3 銀河麒麟“腳手架”構(gòu)建

        3.1 構(gòu)建分析

        銀河麒麟兼容Linux,故編譯器采用gcc、g++,我們對(duì)銀河麒麟移植過程中編寫的makefile 文件內(nèi)容進(jìn)行分析,對(duì)比發(fā)現(xiàn)不同項(xiàng)目工程makefile 的區(qū)別主要有三點(diǎn)[3]:

        3.1.1 目標(biāo)文件不同

        在Win32 中一個(gè)C/C++實(shí)現(xiàn)文件(即.cpp 文件)編譯后會(huì)生成一個(gè)目標(biāo)文件(即.obj 文件),同樣在銀河麒麟上,一個(gè).cpp 文件編譯后對(duì)應(yīng)生成一個(gè).o 文件,在makefile 中針對(duì)每一個(gè).cpp文件都需要進(jìn)行顯性化的配置。

        3.1.2 包含依賴不同

        不同的項(xiàng)目包含不同路徑下的頭文件,包含目錄存在不同,同時(shí)不同的項(xiàng)目依賴不同路徑下的不同庫文件,依賴庫目錄和依賴庫不同。具體體現(xiàn)到makefile 中,包含目錄(-I)、依賴庫目錄(-L)、依賴庫(-l)的參數(shù)配置不同。

        3.1.3 程序類型不同

        項(xiàng)目生成不同類型的程序?qū)?yīng)的鏈接參數(shù)是不同的,生成可執(zhí)行程序沒有“-shared”參數(shù),而生成動(dòng)態(tài)庫或者靜態(tài)庫需要添加“-shared”參數(shù),生成動(dòng)態(tài)庫則還需要添加“-Wl”和“-rpath”參數(shù)。

        3.2“腳手架”構(gòu)建

        經(jīng)過對(duì)銀河麒麟移植makefile 分析,提取出共性內(nèi)容作為模板,通過程序代碼自動(dòng)生成共性內(nèi)容,針對(duì)不同項(xiàng)目的差異點(diǎn),以可視化人機(jī)交互的方式進(jìn)行配置,差異化生成個(gè)性部分,從而確保能生成完整內(nèi)容,MakefileTool 工具左側(cè)為配置區(qū),針對(duì)上述目標(biāo)文件不同、包含依賴不同、程序類型不同情況,以人機(jī)交互的方式進(jìn)行配置,右側(cè)為預(yù)覽生成區(qū),預(yù)覽或者編輯生成的makefile 內(nèi)容。

        3.3“腳手架”實(shí)測(cè)

        使用MakefileTool 工具移植程序包括以下步驟:

        3.3.1 啟動(dòng)MakefileTool 工具,下拉框選擇程序類型,文件瀏覽設(shè)置項(xiàng)目路徑,程序?qū)⒆詣?dòng)讀取并列出對(duì)應(yīng)路徑下所有.cpp文件。

        3.3.2 在其他項(xiàng)中依次設(shè)置包含目錄、依賴庫目錄和依賴庫。

        3.3.3 點(diǎn)擊生成按鈕,右側(cè)查看makefile 內(nèi)容預(yù)覽,點(diǎn)擊保存按鈕,在項(xiàng)目工程目錄下自動(dòng)生成makefile 文件,上傳代碼和makefile 文件到銀河麒麟。

        3.3.4 通過命令“cd”到項(xiàng)目工程所到目錄,執(zhí)行命令“make-f makefile_yhql debug”即可開啟移植編譯。

        按照上述步驟,我們?cè)阢y河麒麟4.0.2 上分別對(duì)SFApplication(可執(zhí)行程序)、RedisClientUnix(靜態(tài)庫)、KDClass(動(dòng)態(tài)庫)項(xiàng)目工程進(jìn)行了移植,生成makefile,分別按第7 步執(zhí)行,完成編譯后,移植生成在銀河麒麟上能運(yùn)行的態(tài)勢(shì)服務(wù)程序,并測(cè)試運(yùn)行成功。

        3.4 使用總結(jié)

        可以看出,使用銀河麒麟MakefileTool 工具,在可視化交互下能快速自動(dòng)生成makefile,以實(shí)測(cè)三個(gè)項(xiàng)目工程為例,手動(dòng)配置形成makefile 至少需要15 分鐘以上,而使用該工具最多5 分鐘即可完成配置,生成的makefile 不易出錯(cuò),且經(jīng)過實(shí)測(cè)能夠在銀河麒麟上順利進(jìn)行編譯移植。

        4 DeltaOS

        DeltaOS 是目前中國依靠自己的技術(shù)和力量自主開發(fā)的最成熟的全中文嵌入式實(shí)時(shí)操作系統(tǒng)[4]。DeltaOS 軟件開發(fā)在交叉編譯時(shí)可依托官方提供的集成開發(fā)環(huán)境LambdaTOOL[5],然而從Win32 平臺(tái)基于VS2010 開發(fā)的Qt 項(xiàng)目移植到DeltaOS 時(shí),要從零開始構(gòu)建項(xiàng)目解決方案,新建項(xiàng)目、配置屬性,特別費(fèi)時(shí)費(fèi)力。因此如果有一種方式能讓項(xiàng)目的構(gòu)建變得更加自動(dòng)化、智能化,能夠解決“巧婦難為無米之炊”的現(xiàn)實(shí)問題,將有助于提高嵌入式操作系統(tǒng)DeltaOS 的移植效率。

        5 DeltaOS“腳手架”構(gòu)建

        5.1 構(gòu)建分析

        QtCreator 是Qt 被Nokia 收購后推出的一款新的輕量級(jí)集成開發(fā)環(huán)境(IDE),包括項(xiàng)目生成向?qū)?、C++代碼編輯器、瀏覽文件、GDB 調(diào)試前端、qmake 構(gòu)建工具等[6]。作為一款輕量級(jí)的IDE,能與Visual Studio 項(xiàng)目工程文件實(shí)現(xiàn)無縫轉(zhuǎn)換,同時(shí)滿足Qt 跨平臺(tái)開發(fā)需求[7]。可以將要移植Visual Studio 項(xiàng)目一鍵轉(zhuǎn)換成QtCreator 能讀取的項(xiàng)目;進(jìn)一步,結(jié)合跨平臺(tái)開發(fā)需求,直接編譯出在DeltaOS 上能運(yùn)行的程序文件,這樣就可省去配置環(huán)節(jié),直接完成移植編譯,問題就聚焦到如何在QtCreator 上構(gòu)建出DeltaOS 的編譯環(huán)境。

        5.2“腳手架”構(gòu)建

        利用QtCreator3.5.0 的構(gòu)建和運(yùn)行環(huán)境可配置功能,構(gòu)建DeltaOS 6 的編譯環(huán)境,步驟如下:

        5.2.1 設(shè)定DeltaOS 下Qt 定制版本存于目錄“D:qt-4.8.3-dao”,DeltaOS 系統(tǒng)文件存于目錄“D:qt-deltaos”,安裝QtCreator工具,并添加環(huán)境變量。

        5.2.2 啟動(dòng)QtCreator,依次點(diǎn)擊【工具】-【選項(xiàng)】,彈出的頁面,點(diǎn)擊【構(gòu)建和運(yùn)行】。

        5.2.3 點(diǎn)擊【編譯器】Tab 頁,添加一個(gè)Custom 編譯器,命名為“DAO”,Compiler path 設(shè)置為“D:qt -deltaos...x86 -win32inc++pentium.exe”,Make path 設(shè)置為“D:qt-deltaos...make.exe”,ABI 選擇“x86 -vxworks -vxworks -elf -32bit”,Qt mkspecs 設(shè)置為“qws/vxworks-pentium4rtp-g++”。

        5.2.4 點(diǎn)擊【Qt Versions】Tab 頁,添加一個(gè)Qt Versions 為“D:qt-4.8.3-daoinqmake.exe”。

        5.2.5 點(diǎn)擊【構(gòu)建套件(Kit)】,添加一個(gè)構(gòu)建套件命名為“DAO”,編譯器選擇之前設(shè)置好的“DAO”,Qt 版本選擇之前添加的“Qt 4.8.3 (qt-4.8.3-dao)”。

        5.2.6 上述設(shè)置好后,就可以新建或打開PRO 項(xiàng)目工程,選擇DAO 的構(gòu)建套件,編譯生成DeltaOS 上運(yùn)行的移植程序。

        5.3“腳手架”實(shí)測(cè)

        利用DeltaOS“腳手架”QtCreator(DAO 構(gòu)建套件)上進(jìn)行程序移植主要包括以下三個(gè)步驟。

        5.3.1 在Win32 上利用VS2010 打開項(xiàng)目解決方案,右鍵選擇要移植的項(xiàng)目,點(diǎn)擊【create basic .pro File】,生成pri 資源描述文件和pro 項(xiàng)目工程文件。

        5.3.2 在Win32 上用QtCreator 打開上述轉(zhuǎn)換的pro 項(xiàng)目工程文件,設(shè)置項(xiàng)目構(gòu)建套件為“DAO”,右鍵選中項(xiàng)目,點(diǎn)擊【構(gòu)建】,在【編譯輸出】窗口中查看編譯結(jié)果。

        5.3.3 編譯完成后,將程序拷貝到DeltaOS 操作系統(tǒng)目標(biāo)機(jī)上測(cè)試運(yùn)行。

        按照上述步驟,我們對(duì)“QFreqAssAnlyseUI”工程進(jìn)行了移植,第一步利用VS2010 轉(zhuǎn)換生成pri、pro 文件;第二步,用QtCreator 打開pro 文件,通過構(gòu)建工程開始移植編譯;第三步,完成移植編譯,生成“l(fā)ibQFreqAssAnlyseUI.so”移植庫,拷貝到DeltaOS 操作系統(tǒng)目標(biāo)機(jī)上測(cè)試調(diào)用運(yùn)行成功。

        5.4 使用總結(jié)

        可以看出,使用DeltaOS“腳手架”QtCreator 工具,能一鍵自動(dòng)將VS 工程轉(zhuǎn)換為Pro 工程,并基于成熟現(xiàn)有IDE 可視化完成編譯,以實(shí)測(cè)一個(gè)項(xiàng)目工程為例,手動(dòng)配置形成工程文件至少需要5 分鐘以上,而使用該工具最多1 分鐘即可自動(dòng)完成,生成的Pro 工程文件屬性齊全,且經(jīng)過實(shí)測(cè)完成編譯后能夠在DeltaOS 上順利運(yùn)行。

        結(jié)束語

        綜上,我們從移植的痛難點(diǎn)分析入手,在“腳手架”的構(gòu)建和項(xiàng)目實(shí)測(cè)方面分別介紹了在銀河麒麟和DeltaOS 操作系統(tǒng)上的國產(chǎn)化移植“腳手架”應(yīng)用情況。以實(shí)際移植經(jīng)驗(yàn)剖析了銀河麒麟makefile 配置復(fù)雜繁瑣和DeltaOS 上項(xiàng)目構(gòu)建費(fèi)時(shí)費(fèi)力的現(xiàn)狀問題,提出了通過現(xiàn)有技術(shù)利用的方式構(gòu)建銀河麒麟和DeltaOS 的移植“腳手架”的構(gòu)建方法,移植“腳手架”工具((MakefileTool 和QtCreator)在實(shí)際項(xiàng)目中得到了充分可行驗(yàn)證,構(gòu)建方法簡(jiǎn)單、便捷,有助于大大提升國產(chǎn)化移植效率,值得推廣和使用。

        猜你喜歡
        麒麟國產(chǎn)化銀河
        特大型橋梁供電系統(tǒng)國產(chǎn)化改造探討
        麒麟“破冰”
        金橋(2022年8期)2022-08-24 01:34:18
        元器件國產(chǎn)化推進(jìn)工作實(shí)踐探索
        ASM-600油站換熱器的國產(chǎn)化改進(jìn)
        能源工程(2021年3期)2021-08-05 07:26:14
        對(duì)麒麟
        寶藏(2021年1期)2021-03-10 11:06:12
        銀河
        問銀河
        它就是麒麟
        去銀河洗澡
        銀河升起
        布達(dá)拉(2020年3期)2020-04-13 10:00:07
        在线不卡精品免费视频| 婷婷久久精品国产色蜜蜜麻豆 | 日本福利视频免费久久久| 亚洲国产av午夜福利精品一区| 97中文字幕精品一区二区三区| 成人午夜视频精品一区| 精品人妻少妇一区二区不卡| 欧美综合区| 亚洲国产一区中文字幕| 国产人妻鲁鲁一区二区| 99香蕉国产精品偷在线观看| 亚洲偷自拍另类图片二区| 中文字幕日本五十路熟女| 老鸭窝视频在线观看| 中文字幕日本特黄aa毛片| 亚洲一区二区三区久久蜜桃| 大香蕉久久精品一区二区字幕| 久久一区二区三区久久久| 成人精品视频一区二区三区尤物| 无码任你躁久久久久久| 欧美va免费精品高清在线| 色偷偷女人的天堂亚洲网| 在线观看的a站免费完整版| 国产亚洲精品a片久久久| 乌克兰少妇xxxx做受6| 亚洲色图视频在线观看网站| 日本免费精品免费视频| 欧美激情综合色综合啪啪五月| 国产综合无码一区二区色蜜蜜| 久久综合第一页无码| 日本午夜一区二区视频| 一区二区三区蜜桃av| 刺激一区仑乱| 亚洲熟女乱色综合亚洲av| 中文在线天堂网www| 亚洲国产成人Av毛片大全| 亚洲精品国产综合久久| 久久婷婷色香五月综合缴缴情| 国产嫖妓一区二区三区无码| 国产日韩欧美911在线观看| 熟妇人妻丰满少妇一区|