麒麟作業系統 (kylinos) 從入門到精通 - 研發環境 - 第二十一篇 C++/C語言開發環境搭建

碼上世界發表於2022-07-02

0.基礎環境

類別:筆記本
型號:中國長城 NF14C
硬體平臺:飛騰處理器(ArmV8 指令集)
系統:銀河麒麟作業系統 V10 SP1(2203)

關鍵詞:
信創,麒麟系統,linux,c++,c,核心飛騰,arm

1.需求背景

C/C++在面向底層和高效能運算是,具備無可替代的效能優勢與對硬體全面控制的能力。因此,雖然現在GO語言和Java語言大行其道,但C和C++的研發仍然不可少,特別是如人工智慧演算法包等。

2.基礎準備工作

2.1 JDK安裝

JDK安裝是因為Clion、Eclipse使用,開啟終端輸入

sudo apt-get install openjdk-11-jdk -y

2.2 C++編譯依賴安裝

sudo apt-get install llvm gcc g++ cmake git vim -y

3.使用clion進行C++/C語言開發(個人首選,習慣了jetbrains系列)

開啟https://www.jetbrains.com.cn/...,
圖片.png
根據自己的需要下載對應Clion的版本二進位制版本,https://download.jetbrains.co...14g9b34_gaMTA0NTY4MjM1Ny4xNjU2MjUyODcw_ga_9J976DJZ68*MTY1NjI1Mjg2OS4xLjAuMTY1NjI1Mjg4OC4w
解壓到相應的資料夾,資料夾路徑不能有中文。
圖片.png
圖片.png
圖片.png

https://jetbra.in/s ja-jetbrains 啟用工具配套啟用碼地址(僅供學習研究,使用請購買官方正版),上面下載最新的工具和啟用碼。啟用可以參考:https://segmentfault.com/a/11...
工具下載,好像有時候工具所在網站打不通,可以使用的我NAS地址
http://gofile.me/4i7bC/TppnI17yM

HLLIQN9GJ8-eyJsaWNlbnNlSWQiOiJITExJUU45R0o4IiwibGljZW5zZWVOYW1lIjoiZnV6emVzIGFsbHkiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA3LTAxIiwicGFpZFVwVG8iOiIyMDIzLTA3LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IkNMIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wNy0wMSIsInBhaWRVcFRvIjoiMjAyMy0wNy0wMSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTA3LTAxIiwicGFpZFVwVG8iOiIyMDIzLTA3LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTVyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDctMDEiLCJwYWlkVXBUbyI6IjIwMjMtMDctMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFdTIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wNy0wMSIsInBhaWRVcFRvIjoiMjAyMy0wNy0wMSIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIyMDcwMVBTQU4wMDAwMDUiLCJoYXNoIjoiVFJJQUw6MTY2NTMxNDYzNCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-GOMmWoD11vf1Sa7ovZ+XCjjxy7howrbbKgLZ5ja7tKZqRAOFkS3cOcqbXotA+8eGAK6iMyaG1Eb9O7Yt+Ncz+HmZPkorbcAmbg3FK89tM1xlpJ/R6MsSYmkx4+pRyrdYb+ZdPWo78f9L/LmR9fwHk3AKYt9y8aNmCSzLMqEXy89yUYyPP1fydRSV++fXin8Y4N2jmg+hLZPSj90s4F6cc2lPvxgV7UwDpD5IEe8e5o7iWbW/9UhcsEvGsY18uLN1uCr/fDdJpNFpjGysSyokfqfyEd6uZxGp9PeC75GF2v6RcQ35HwXFt21wqVxP+fS8oiNnpHjXy+lUF2qK8F081A==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD

圖片.png
使用ja-jetbrains工具下的vmoptions內容替換現有的vmoptions64內容,並新增-javaagent行,指定ja-netfilter.jar所在位置

-Xms128m
-Xmx1024m
-XX:ReservedCodeCacheSize=512m
-XX:+IgnoreUnrecognizedVMOptions
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED

-javaagent:/home/long/clion-2022.1.3/jetbra/ja-netfilter.jar=jetbrains

圖片.png
圖片.png
再使用在網站上獲取的最新啟用碼啟用

圖片.png
啟用成功,退出
圖片.png

4.使用eclipse進行c++/C語言開發

eclipse可以通過應用市場下載(也可以通過官方網站下載aarch版本的installer,在裡面直接選擇)
圖片.png
啟動後,點幫助選單進入外掛市場
圖片.png
搜尋C++整合環境外掛CDT,點安裝(或通過官網直接下載最新外掛https://www.eclipse.org/cdt/d...)
圖片.png
安裝完畢後重啟生效。

5.使用Qt Creator進行C++/C語言開發

qt creator可以通過應用市場下載安裝
圖片.png
應用市場下安裝qmake(要進入全部才能看到)
圖片.png
開啟後的效果
圖片.png

此外還需要安裝qt sdk
https://download.qt.io/archiv...
圖片.png
https://download.qt.io/archiv...
圖片.png
解壓到自定義資料夾
開啟qt creator,點工具|選項選單
圖片.png
我的qmake位置如下(cmake不用配置,已自動檢測到)
圖片.png
kits配置好
圖片.png
圖片.png

6.例項

6.1 Eclipse

開啟eclipse,點選新建工程,找到C++,如下圖。
圖片.png
圖片.png
圖片.png
圖片.png

6.2 Clion及配置

圖片.png
自帶的cmake不能在arm 飛騰下工作,需要在setting中配置toolchains.
圖片.png
配置後效果如下
圖片.png
儲存,IDE會重建工程索引,請耐心等待.編譯執行效果如下
圖片.png

6.3 qt creator(不完美,很久沒有搞QT了,歡迎QT開發人員評論補充)

新建專案
圖片.png
圖片.png
圖片.png
圖片.png
圖片.png
圖片.png
圖片.png

麒麟系統專欄:
https://segmentfault.com/blog...
文章發表在SegmentFault
聯絡郵箱:1179611323@qq.com
群:662512340
發行日志:
20220702 首發

相關文章