1
头图

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 编译与打包将单独弄一个章节


码上世界
68 声望208 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男