当前位置: 首页 > news >正文

openEuler开发环境搭建:从零开始构建应用开发平台

openEuler开发环境搭建:从零开始构建应用开发平台

【免费下载链接】docsTo build and enrich documentation for openEuler project.项目地址: https://gitcode.com/openeuler/docs

openEuler是一个面向数字基础设施的开源操作系统,为开发者提供了强大的开发环境和工具链。本文将为您详细介绍如何在openEuler上搭建完整的应用开发环境,从系统安装到开发工具配置,再到实际开发实践,帮助您快速上手openEuler应用开发。🚀

为什么选择openEuler作为开发平台?

openEuler不仅是一个高性能的服务器操作系统,更是一个完整的开发平台。它支持多种架构(AArch64和x86_64),内置了丰富的开发工具链,包括GCC编译器、Java开发环境、构建工具等。无论您是开发系统应用、云原生应用还是嵌入式应用,openEuler都能提供稳定高效的开发环境。

系统硬件要求

在开始之前,让我们先了解openEuler开发环境的基本硬件要求:

物理机环境要求:

  • 架构:支持AArch64(Arm 64位)和x86_64(Intel x86 64位)
  • CPU:华为鲲鹏920系列CPU或Intel® Xeon®处理器
  • 内存:不小于4GB(建议8GB以上以获得更好的开发体验)
  • 硬盘:建议不小于120GB,支持IDE、SATA、SAS等接口

虚拟机环境要求:

  • 架构:AArch64或x86_64
  • CPU:至少2个虚拟CPU
  • 内存:不小于4GB(建议8GB)
  • 硬盘:不小于32GB(建议120GB)

第一步:openEuler系统安装

获取安装镜像

首先需要从openEuler社区下载适合您硬件架构的安装镜像:

  1. 访问openEuler官网,点击"下载"
  2. 选择"社区发行版",找到对应的版本
  3. 根据您的架构选择AArch64或x86_64版本
  4. 下载相应的ISO镜像文件

安装过程详解

openEuler提供了直观的图形化安装界面,让系统安装变得简单:

安装向导启动后,您将看到如上图所示的启动菜单界面,可以选择直接安装或测试媒体后安装。

接下来是语言选择界面,建议选择"简体中文"以便更好地理解安装过程中的各项设置。

关键安装步骤

在安装过程中,有几个关键配置需要注意:

软件选择:这是搭建开发环境的关键步骤!在"软件选择"页面,务必勾选"开发工具"选项,这将自动安装GCC、make、gdb等基础开发工具。

如上图所示,在"已选环境的附加软件"部分,一定要勾选"开发工具"选项,这是后续开发工作的基础。

分区配置:建议为开发环境预留足够的磁盘空间,特别是如果您计划编译大型项目或运行多个容器。

用户创建:创建开发用户时,建议将其添加到wheel组,以便在需要时使用sudo权限。

第二步:配置开发环境

配置yum软件源

openEuler使用yum/dnf作为包管理器,配置正确的软件源是安装开发工具的第一步:

在线yum源配置:

# cd /etc/yum.repos.d # vi openEuler-xxx.repo

编辑配置文件,添加以下内容:

[osrepo] name=osrepo baseurl=http://repo.openeuler.org/openEuler-{version}/OS/{arch}/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-{version}/OS/{arch}/RPM-GPG-KEY-openEuler

本地yum源配置(使用ISO镜像):如果您有ISO镜像文件,可以挂载并配置本地源:

# mount /home/iso/openEuler-xxx-dvd.iso /mnt/

然后在yum配置文件中添加本地源:

[localosrepo] name=localosrepo baseurl=file:///mnt enabled=1 gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-openEuler

安装基础开发工具

openEuler默认已经安装了GCC编译器,但您可能需要安装其他开发工具:

安装JDK开发环境:

# 检查是否已安装JDK dnf list installed | grep jdk # 如果没有安装,搜索可用版本 dnf search jdk | grep jdk # 安装JDK开发包(以openjdk-devel为例) dnf install java-{version}-openjdk-devel.aarch64 # 验证安装 java -version

安装rpm-build工具:如果您需要构建RPM软件包,需要安装rpm-build:

# 安装rpm-build dnf install rpm-build # 验证安装 rpmbuild --version

安装其他常用开发工具:

# 安装构建工具 dnf install make cmake automake autoconf # 安装版本控制工具 dnf install git # 安装调试工具 dnf install gdb strace ltrace # 安装性能分析工具 dnf install perf sysstat

第三步:使用GCC进行C/C++开发

openEuler默认安装了GCC编译器套件,支持C、C++等语言的编译。GCC是GNU编译器集合,功能强大且性能优越。

GCC基础使用

编译简单的C程序:

# 创建hello.c文件 cat > hello.c << EOF #include <stdio.h> int main() { printf("Hello, openEuler!\n"); return 0; } EOF # 编译 gcc -o hello hello.c # 运行 ./hello

编译选项说明:

  • -o:指定输出文件名
  • -g:生成调试信息
  • -O2:优化级别2
  • -Wall:开启所有警告
  • -I:指定头文件目录
  • -L:指定库文件目录
  • -l:链接库文件

创建和使用库文件

创建动态链接库:

# 编译为共享库 gcc -fPIC -shared -o libhello.so hello.c # 使用动态库 gcc -o main main.c -L. -lhello

创建静态链接库:

# 编译为目标文件 gcc -c hello.c -o hello.o # 创建静态库 ar rcs libhello.a hello.o # 使用静态库 gcc -o main main.c libhello.a

第四步:Java开发环境配置

设置Java环境变量

找到JDK安装路径并设置环境变量:

# 查找Java路径 which java ls -la /usr/bin/java # 设置环境变量(根据实际路径调整) export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-1.h2.aarch64 export PATH=$JAVA_HOME/bin:$PATH

使用IntelliJ IDEA进行Java开发

对于大中型Java项目,推荐使用IDE提高开发效率:

  1. 下载IntelliJ IDEA:建议下载2018版本以确保与openEuler兼容
  2. 安装GTK库(如果需要图形界面):
    dnf -y install gtk2 libXtst libXrender xauth
  3. 配置X11转发(远程开发时):
    # 编辑SSH配置 vim ~/.ssh/config # 添加以下内容 Host * ForwardAgent yes ForwardX11 yes
  4. 运行IntelliJ IDEA
    tar -xf ideaIC-2018.3.tar.gz cd ./idea-IC-183.4284.148 bin/idea.sh &

第五步:构建RPM软件包

openEuler提供了完整的RPM包构建支持,您可以使用OBS(Open Build Service)或本地工具构建软件包。

使用OBS构建软件包

OBS是openEuler的官方构建服务,支持在线构建和分发软件包:

如上图所示,在OBS中创建软件包时,需要填写包名、标题和描述等信息。

在仓库配置页面,您可以管理不同架构的构建和发布设置,确保软件包能在多种平台上正确构建。

本地构建RPM包

创建spec文件:

# 创建基本的spec文件模板 cat > hello.spec << EOF Name: hello Version: 1.0 Release: 1%{?dist} Summary: A simple hello world program License: GPLv3+ URL: http://example.com Source0: %{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: make %description A simple hello world program for openEuler. %prep %setup -q %build make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} %files %license LICENSE %{_bindir}/hello %changelog * Tue Jan 01 2023 Developer <developer@example.com> - 1.0-1 - Initial package EOF

构建RPM包:

# 准备构建环境 rpmdev-setuptree # 将源码放入相应目录 cp -r hello-1.0 ~/rpmbuild/SOURCES/ # 构建RPM包 rpmbuild -ba hello.spec

第六步:开发工具链整合

版本控制与协作

openEuler完全支持Git等现代版本控制工具:

# 配置Git git config --global user.name "Your Name" git config --global user.email "your.email@example.com" # 克隆openEuler项目 git clone https://gitee.com/openeuler/docs.git # 创建开发分支 git checkout -b feature-branch

调试与性能分析

使用GDB调试:

# 编译带调试信息的程序 gcc -g -o program program.c # 启动GDB调试 gdb ./program # 常用GDB命令 # break main # 在main函数设置断点 # run # 运行程序 # next # 执行下一行 # print variable # 打印变量值 # backtrace # 查看调用栈

性能分析工具:

  • perf:系统级性能分析
  • strace:跟踪系统调用
  • ltrace:跟踪库函数调用
  • valgrind:内存调试和性能分析

常见问题与解决方案

1. 软件包安装失败

问题:使用dnf安装软件包时出现依赖错误解决:清理缓存并重建

dnf clean all dnf makecache dnf install --skip-broken package-name

2. 编译错误

问题:缺少头文件或库文件解决:安装对应的开发包

# 查找包含特定文件的包 dnf provides */stdio.h # 安装开发包 dnf install glibc-devel

3. 权限问题

问题:普通用户无法访问某些目录解决:正确配置用户组和权限

# 将用户添加到wheel组(允许sudo) usermod -aG wheel username # 设置目录权限 chmod 755 /path/to/directory

进阶开发技巧

容器化开发环境

openEuler支持Docker和Podman容器技术,您可以创建隔离的开发环境:

# 安装Docker dnf install docker # 启动Docker服务 systemctl start docker # 运行开发容器 docker run -it --name dev-env -v $(pwd):/workspace openEuler:latest /bin/bash

自动化构建脚本

创建自动化构建脚本可以提高开发效率:

#!/bin/bash # build.sh - 自动化构建脚本 set -e # 清理旧构建 make clean # 编译 make all # 运行测试 make test # 打包 make package echo "构建完成!"

总结

openEuler为开发者提供了完整、高效的开发环境。通过本文的指导,您已经学会了:

  1. 系统安装:正确安装openEuler并选择开发工具
  2. 环境配置:配置yum源和安装基础开发工具
  3. C/C++开发:使用GCC编译器进行程序开发
  4. Java开发:配置Java环境和IDE
  5. 包管理:构建和分发RPM软件包
  6. 工具整合:使用版本控制和调试工具

openEuler的开发环境不仅功能强大,而且与社区生态紧密结合。无论您是系统开发者、应用开发者还是云原生开发者,openEuler都能为您提供稳定可靠的开发平台。

下一步建议

  • 探索docs/zh/server/development/application_dev/using_make_for_compilation.md学习Makefile使用
  • 查看docs/zh/server/development/application_dev/building_an_rpm_package.md深入了解RPM包构建
  • 参与openEuler社区贡献,体验开源开发的乐趣

祝您在openEuler上的开发之旅顺利愉快!🎉

提示:本文基于openEuler官方文档编写,更多详细信息请参考docs/zh/server/development/application_dev/preparations_for_development_environment.md和相关开发文档。

更多信息:https://ar.openeuler.org/ar/

【免费下载链接】docsTo build and enrich documentation for openEuler project.项目地址: https://gitcode.com/openeuler/docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.rkmt.cn/news/1508068.html

相关文章:

  • 当ZYNQ的MDIO管脚不够用?手把手教你用GPIO模拟管理多个PHY芯片(附完整C代码)
  • 从IMU数据流到稳定画面:深入海思Hi3516DV500陀螺仪防抖的底层数据链路
  • 从RGB颜色提取到大小端转换:图解移位运算在嵌入式开发中的5个经典应用
  • 从脚本到图表:PlantUML时序图语法避坑指南与实战示例解析
  • ChromePass终极指南:解密Chrome密码存储的专业工具
  • 【2027最新】基于SpringBoot+Vue的民族婚纱预定系统管理系统源码+MyBatis+MySQL
  • 一键起飞条件分析
  • Android 9 音量调节踩坑记:为什么你的15级音量调到30级也没用?
  • 2026年新发布:专业大量收乌龟的机构深度推荐与选择指南 - 品牌鉴赏官2026
  • 2026年新发布安徽九华山土菜餐馆优秀单:宴八方土菜馆深度解析 - 品牌鉴赏官2026
  • AI Agent 人机协作:从自主决策到人工审批的混合编排模式
  • 从视频到标签:利用Labelme高效构建视频标注工作流
  • 当InfiniBand网络“大脑”宕机时:深入理解Mellanox SM HA的故障切换机制与业务影响
  • 从手机芯片到显卡:看懂宣传页里的算力(TOPS/FLOPS)到底靠不靠谱
  • 别再只盯着BIOS了!聊聊主板上的‘隐形管家’:Embedded Controller (EC) 到底管啥?
  • Python+Django实战|线上问卷与投票调研系统:自定义题型、问卷发布、链接分享、答卷收集、数据可视化、报表导出
  • mbedtls RSA签名验签踩坑记:PKCS#1 V1.5和V2.1填充模式到底怎么选?
  • 2026年广州除甲醛公司哪家效果好?地域化服务对比与避坑指南 - 观域传媒
  • Nucleus Co-Op完整教程:Windows单机游戏分屏多人本地同乐终极指南
  • 别再只盯着CD和EMD了!点云补全评估指标F-Score与DCD实战解读(附代码示例)
  • Charles:软件能力深度解析 / 跨平台 HTTP/HTTPS 代理调试工具 / 客户端与互联网之间的中间人代理 / 拦截、查看、篡改所有网络流量
  • 从RTL到GDS:一个数字IC工程师的DFT实战笔记(含SCAN插入与BIST规划)
  • 从np.zeros到np.ones/np.full:NumPy数组初始化全家桶保姆级指南
  • 传统云端OCR vs 天若OCR本地版:如何在Windows上实现100%离线文字识别
  • 从‘纸面速度’到‘真实体验’:深入解读WiFi 6(802.11ax)速率表背后的工程逻辑
  • 别再死记硬背FOC公式了!用Arduino+ESP32手把手带你理解SVPWM与DQ坐标系
  • 从XSS_labs靶场通关看前端安全:那些年我们绕过的WAF与过滤规则
  • 【电脑端 AI 智能体】 OpenClaw 从下载安装到实操全过程(含安装包)
  • Unlock Music完整指南:3步解决加密音乐文件播放难题
  • 香港中文大学研究团队造出了一台全自动考卷生成机器