头图

麒麟操作系统 (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 编译与打包将单独弄一个章节


麒麟操作系统
频繁更新,为大家提供麒麟系统在飞腾处理器上使用教程(相类似的版本可参考)。从场景出发,每一篇为一个...

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

59 声望
139 粉丝
0 条评论
推荐阅读
麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第五十六篇 PDF阅读与批注
类别:笔记本型号:中国长城 NF14C硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2303) 关键词:信创,麒麟系统,linux,c++,c,飞腾,arm,aarch,arm64,pdf,foxit,okular,acrobat pro

码上世界1阅读 775

封面图
关于 Ubuntu 20.04 LTS 的网络(dchp/dns/route/PPPoE)
前言旧时代网络管理软件 net-tools、NetworkManager新时代网络管理软件 iproute2、resolvectl新时代旧时代大致可按 2010 年划分检查网卡是否已插入网线直接查看文件 {代码...} ip addr 或 ip link 命令查看网卡状...

qbit2阅读 15k

Linux终端居然也可以做文件浏览器?
大家好,我是良许。在抖音上做直播已经整整 5 个月了,我很自豪我一路坚持到了现在【笑脸】最近我在做直播的时候,也开始学习鱼皮大佬,直播写代码。当然我不懂 Java 后端,因此就写写自己擅长的 Shell 脚本。但...

良许1阅读 2.1k

Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。

ThinkSNS1阅读 2.5k

C++编译器和链接器的完全指南
C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C++中的编译器和链接器以及它们的工作原理和使用方法。

小万哥2阅读 1.1k

封面图
confluence7.2.1的部署与迁移---呕心沥血版
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。 到官网下载最新版本,截止目前...

暗涌阅读 7.9k

Ubuntu 20.04 读写 Windows 10 共享目录(qbit)
本文实验环境中,Windows 操作系统版本为 Windows Server 2016,应该对 Windows 10 和 Windows Server 2019 同样适用

qbit1阅读 6.3k

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

59 声望
139 粉丝
宣传栏