博客 / 詳情

返回

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

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/en-us/clion/download/other.html,
圖片.png
根據自己的需要下載對應Clion的版本二進制版本,https://download.jetbrains.com.cn/cpp/CLion-2022.1.3.tar.gz?_...14g9b34_gaMTA0NTY4MjM1Ny4xNjU2MjUyODcw_ga_9J976DJZ68*MTY1NjI1Mjg2OS4xLjAuMTY1NjI1Mjg4OC4w
解壓到相應的文件夾,文件夾路徑不能有中文。
圖片.png
圖片.png
圖片.png

https://jetbra.in/s ja-jetbrains 激活工具配套激活碼地址(僅供學習研究,使用請購買官方正版),上面下載最新的工具和激活碼。激活可以參考:https://segmentfault.com/a/1190000041769901
工具下載,好像有時候工具所在網站打不通,可以使用的我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/downloads.php)
圖片.png
安裝完畢後重啓生效。

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

5.1 QT5

5.1.1 環境安裝與準備

sudo apt-get install build-essential -y #安裝基礎構建環境
sudo apt-get install qtcreator qt5-default qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples -y #安裝qt 及creator ide,文檔,示例

如果出現錯誤:
Error while loading shared libraries
Problem:
radiusd: error while loading shared libraries:libfreeradius-radius-2.1.10.so:cannot open shared object file: No such file or directory
原因:
其實已經安裝,但動態鏈接找不到它。
解決嘗試:

sudo /sbin/ldconfig -v

5.1.2 其他可選方式

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

5.2 QT6

//todo 待補

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/kylinos
文章發表在SegmentFault
聯繫郵箱:1179611323@qq.com
羣:662512340
發行日志:
20220702 首發
20221121 補充qt環境完整安裝準備方案
20230330 補充QT SDK源碼下載加速與編譯配置説明
20230330 補充源碼make時增加線程配置
20230331 刪除QT5源碼編譯部分,關於QT SDK 編譯與打包將單獨弄一個章節

user avatar javaguide 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.