OpenHarmony代码编译及源码跳转配置
本文旨在指导在Linux(如Ubuntu .和.,源译其他系统可参考)环境下下载和编译OpenHarmony(OH)代码,码编并配置Visual Studio Code(VSCode)以实现Native框架(C++)代码的源译智能跳转,以提升阅读OH源码的码编便捷性。1. 下载与编译
从OH官网下载链接(gitee.com/openharmony/d...)获取代码。源译进入代码根目录后,码编repokemon源码执行build.sh脚本,源译例如针对rk开发板的码编编译命令会包含选项`--gn-flags="--export-compile-commands"`,用于生成compdb数据库,源译以备后续使用。码编2. VSCode插件与配置
在编译过程中,源译安装VSCode的码编clangd插件,它与compdb文件配合。源译记得禁用默认的码编C/C++插件。接着,源译使用VSCode通过SSH(Windows和macOS用户适用)访问OH源代码目录,创建.vscode文件夹,其中包含settings.json。3.1. 插件安装与启用
在settings.json中填写以下配置:- clangd.path: 指定OH预构建的什么源码不加密clangd路径。
- --compile-commands-dir: 编译产生的compdb文件路径,例如在rk上为out/rk/compile_commands.json,需根据实际编译产品找到相应路径。
- --query-driver: 指定OH预构建的clang编译器路径。
3.2. VSCode配置
关闭并重新打开VSCode,当C++文件(如foundation文件夹下的Native C++代码)打开时,clangd将开始索引,索引完成后即可享受代码跳转功能。Linux下如何编译Android源码~~~?
这个问题已经找到解决方案了,方法如下:1.在Linux设置文件共享,将项目共享,最好有个密码什么的。
2.在Linux上配置sshserver,用于和编译安卓源码3.Linuxmac通过连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用。然后就可以mac编写代码,微分销软件源码然后ssh编译什么的,很方便,
MobaXterm-SSH远程连接Ubuntu
大家好,我是 `杰哥编程`
------------------------- 下面是我的gitee仓库,欢迎大家关注↓ [gitee源码仓库链接跳转]( gitee.com/wrj/embe...)
## 使用MobaXterm-SSH远程连接Ubuntu虚拟机的好处:
1. 使用ssh远程终端操作,相比虚拟机图形界面,更加小巧,速度更快。对于初学者来说,可以直接进入虚拟机桌面,安装VIM,使用touch命令创建文件,然后使用vi编辑文件,进入编辑模式编写代码。完成编写后,使用ESC退出,保存文件,编译运行。白马黑马指标源码对于小项目来说,这种方法没有问题;但对于大项目,VIM对新手不太友好。
2. 解决方法是在Windows电脑上使用sourceInsight或VScode编辑器编辑整个工程项目的代码,然后通过MobaXterm终端远程接入虚拟机,拖拽文件图标将项目源码上传到虚拟机。在终端使用gcc编译指令编译整个工程。后续每次修改,都在Windows电脑上使用代码编辑器修改代码,然后将改动的文件通过MobaXterm拖拽上传到虚拟机,再次编译。
3. 这种方法在工作中也常用,因为工作中会使用公司的服务器(Ubuntu虚拟机)进行交叉编译代码,通常通过SSH远程接入服务器,敲终端命令进行编译,看不到桌面,更不用说使用VIM编写代码了。
## 使用MobaXterm-SSH远程连接Ubuntu虚拟机的早期创业指标源码方法:
1. 使用VM软件,从Ubuntu官网下载Ubuntu系统的iso镜像文件,使用VM软件读取iso文件创建虚拟机,记得采用桥接网络才能接入互联网;(具体创建虚拟机的详细操作方法见主页文章”如何搭建一台属于自己的Ubuntu虚拟机“)
2. 按住”Ctrl+Alt+t“启动终端,依次在终端输入以下指令安装并启动SSH服务:
2.1 同步刷新软件仓库,运行命令:sudo apt-get -y update
2.2 运行命令安装openssh-server:sudo apt-get install -y openssh-server
2.3 检查 ssh 服务是否启动成功,运行命令,出现以下则为运行成功:sudo ps -e | grep ssh
2.4 如果没有启动,输入命令启动 ssh 服务:sudo service ssh start
2.5 输入命令允许SSH连接通过防火墙:sudo ufw allow ssh
2.6 输入命令允许SSH服务运行:sudo systemctl enable --now ssh
2.7 输入命令安装ifconfig网络工具:sudo apt-get install net-tools
2.8 输入命令查看虚拟机的IP地址,..1.就是虚拟机的IP地址了:ifconfig
2.9 打开MobaXterm,按照下面的数字顺序提升,点击1、2按钮选择SSH连接,3的位置输入2.8步骤中得到的IP地址,勾选4的位置那里的方框,然后在5的位置那里输入你的Ubuntu名字(不知道Ubuntu名字的话,运行whoami命令就可以得到你的Ubuntu名字);点击6位置的OK就开始连接到我们的Ubuntu了。
2. 连接成功就是下面这样,第一次可能会需要你输入密码,这个密码就是你的开机密码。
## 如何使用MobaXterm上传工程文件到Ubuntu,然后编译工程:
3.1 点击红框位置的Desktop文件夹图标进入Ubuntu的Desktop目录。
3.2 点击选中你需要编译的工程文件夹,拖拽图标到图中所示区域,即可完成工程文件夹的源码上传到Ubuntu。
3.3 执行命令:cd /home/hh/Desktop/upg_svr_public/ 进入/home/hh/Desktop/upg_svr_public/目录下,然后编译你的工程源码
3.4 执行位置1的编译命令编译整个工程源码,然后可以在位置2的地方看见编译成功生成的可执行文件,如果是交叉编译,就可以把可生成的执行文件通过图标拖拽出来,然后把可执行文件拖拽到开发板,就可以运行了。
## 总结:
企业做的嵌入式Linux项目,为了节约硬件成本,采购的内存大小一般只能支持内核的运行和公司的应用软件运行以及支持调试工具的运行,一般不会有多余的内存来在开发板本地安装编译工具,这就需要我们在其他地方把源码工程编译好,生成可执行文件下载到开发板运行。我们常常在公司的服务器上面的虚拟机进行交叉编译,所以才需要我们用远程终端工具MobaXterm去接入虚拟机。然后把我们在window用VScode编辑好的代码拖拽上传到服务器,等待服务器编译完把生成的可执行文件从服务器拖拽下来,烧录到板子运行。本章节讲解了如何使用MobaXterm去远程接入虚拟机,并且互相拖拽图标传输文件、编译工程源码的操作,希望帮到你;如果你想得到更多免费的嵌入式学习资料,点击进入主页,按提示操作领取嵌入式学习独家资源。
如何编译打包OpenSSH 9.4并实现批量升级
对于如何编译打包OpenSSH 9.4并实现批量升级,以下详细操作指南将会提供完整步骤。推荐关注公众号后台回复“ssh”,以获取相关源码文件。
操作步骤如下:
首先,了解OpenSSH 9.4版本的重要更新以及官方发布的相关说明。官网链接请参考openssh.com/releasenote...。
openssh.com/releasenote...链接
步骤1: 定制编译脚本
使用开源脚本进行自动化编译,以简化OpenSSH源码的构建过程。
Github链接请参考github.com/boypt/openss...。请注意,对于编译过程中的依赖安装,建议使用虚拟机环境以避免与系统环境冲突。
从pullsrc.sh脚本中,添加--no-check-certificate参数至wget命令,以解决源代码下载时的证书问题。同时,针对CentOS7环境,对el7目录下的SPECS/openssh.spec文件进行修改以确保编译中包含ssh-copy-id命令。
步骤2: 准备编译环境
确保所有开发工具和环境(如GCC、make等)已经安装在虚拟机中。对于没有网络的服务器,可以通过外部链接提供源码包并传入download目录。
使用编译脚本进行自动化编译和打包过程,并检查编译是否成功,以及rpm包是否完整。
步骤3: 批量升级服务器SSH版本
利用Ansible自动化工具在多台服务器上执行脚本,以实现批量升级。
第一步,在执行脚本前,确保Ansible服务已安装在用以执行脚本的服务器上。
解压脚本文件,查看核心文件。脚本会包含一个playbook用于批量管理与配置服务器。
自定义待升级服务器信息,例如,可以将一组服务器的IP、用户名及密码列表分类存储至不同主机组,适用于相同的登录凭证或用于区分不同登录凭证的多组服务器。
执行自定义脚本,启动升级过程。随后,通过SSH服务验证OpenSSH是否已成功升级到9.4版本,并检查与服务器的登录是否正常。
为了提供具体代码和操作流程的指导,建议参考这些链接提供的资源,并确保在执行操作前了解和遵循各自的安全策略与最佳实践,包括权限管理、依赖安装与配置等方面的细节。
2024-12-29 00:17
2024-12-29 00:03
2024-12-28 23:55
2024-12-28 23:20
2024-12-28 23:11