RPM打包時(shí)如何切換編譯器工具鏈-創(chuàng)新互聯(lián)

本文目的

近年來,LLVM編譯器項(xiàng)目憑借其良好的架構(gòu)及友好的license,社區(qū)活躍度增加明顯,成為與GCC項(xiàng)目并列的開源的編譯器巨頭之一。目前一些OS社區(qū)(如openEuler社區(qū))的軟件包仍默認(rèn)使用GCC工具鏈編譯構(gòu)建,本篇文章調(diào)研在RPM打包時(shí)如何切換構(gòu)建工具鏈。

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元丹江口做網(wǎng)站,已為上家服務(wù),為丹江口各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792相關(guān)概念
  • RPM Package Manager (RPM) 是一個(gè)強(qiáng)大的命令行驅(qū)動(dòng)的軟件包管理工具,用來安裝、卸載、校驗(yàn)、查詢和更新 Linux 系統(tǒng)上的軟件包。
  • YUM:RPM包管理工具,相比RPM工具,YUM可以自動(dòng)設(shè)備軟件包依賴關(guān)系,自動(dòng)安裝相關(guān)軟件包。
  • rpmbuild:RPM軟件包打包工具,根據(jù)SPEC文件引導(dǎo)創(chuàng)建rpm的二進(jìn)制軟件包和源碼軟件包。
  • SPEC文件:spec文件中包含了軟件包的諸多信息,如軟件包的名字、版本、類別、說明摘要、創(chuàng)建時(shí)要執(zhí)行什么指令、安裝時(shí)要執(zhí)行什么操作,以及軟件包所要包含的文件列表等。
  • Clang:LLVM編譯器項(xiàng)目C/C++前端。
實(shí)現(xiàn)方案

以名為test的軟件包為例,假設(shè)此軟件包默認(rèn)用GCC構(gòu)建,則可以通過如下步驟切換成Clang+LLVM。

  1. 在test.spec中,設(shè)置clang選項(xiàng)的默認(rèn)值。
    # Option to enable compiling with clang,default is gcc
    %bcond_with clang
    值得注意的是,bcond_with和bcond_without的意義如下:

    【%bcond_with defaults value to 0】
    【%bcond_without defaults value to 1】

  2. 設(shè)置spec文件內(nèi)部全局變量toolchain。
    %if %{with clang}
    %global toolchain clang
    %endif
    ```
  3. 根據(jù)是否打開clang編譯,設(shè)置一些相應(yīng)的動(dòng)作,如依賴關(guān)系。
    %if %{with clang}
    BuildRequires: clang llvm
    %endif
  4. 關(guān)鍵的一步,設(shè)置編譯器工具鏈。通常情況下,軟件包允許開發(fā)者自定義編譯器工具鏈,如make工具通過CC、CXX等宏設(shè)置。
    %if %{with clang}
    %global make_opts HOSTCC=clang CC=clang CXX=clang++
    %endif
  5. 執(zhí)行編譯
    make %{?make_opts}
  6. 軟件包打包時(shí)增加–with選項(xiàng),使能clang構(gòu)建。
    rpmbuild -ba --with=clang test.spec

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

新聞標(biāo)題:RPM打包時(shí)如何切換編譯器工具鏈-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article40/hcpho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作