MobaXterm安装ninja和GN环境搭建

目录:

先下载好MobaXterm和Ubuntu:Ubuntu下载完重新打开MobaXterm即可看到

        MobaXterm自行找安装包下载,ubuntu如下:

linux配置git

        1. 配置用户名密码

        2. 查看 git 账号信息

        3.或者直接使用以下命令就可以看到整个账户信息

        4.因为服务器上还没有生成过公私秘钥对,所以用该命令生成authorized_keys id_rsa id_rsa.pub

        5.查看公钥,并把它放到Github的SSH管理中

        6.测试链接:出现以下提示说明链接成功了

        7.去需要下拉的代碼倉中配置ssh

linux初始环境软件安装

        1.初始环境

        2.下载repo

ninja安装

        1.第一种

                1.通过ubuntu自带的软件库安装

                2.安装完毕后,查询版本,显示出版本号后,说明安装成功

        2.第二种

                1.打开命令行,进入你想要下载ninja源码的目录,执行如下指令:(可以先看下有沒有安裝python,我的python版本是3.10.12)

                2.进入目录内检查

                3.输入命令完成安装

                4.检查版本号,确认安装成功

GN环境搭建

        1.安装clang(有些linux可不用安装,我这边下拉gn运行后发现需要clang,不清楚原因根据编译结果如需要安装可进行如下步骤,不需要则可以直接跳到2.gn)

        2.安装gn

*内涵构建问题解决 <- 搜索关键问题即可跳转

        3. 用gn和ninja编译例程


先下载好MobaXterm和Ubuntu:Ubuntu下载完重新打开MobaXterm即可看到

MobaXterm自行找安装包下载,ubuntu如下:

点击启动:

输入用户名用以创建一个用户(不输入默认root):

输入两次密码确认(注意,输入密码没有反馈,不用理会,正常输入即可):

至此,得到了一个可用的Ubuntu操作系统环境

接下来在MobaXterm可以直接看到

如果没有需要自行添加:


linux配置git

 相关学习配置链接1:linux配置git

 相关学习配置链接2: Linux服务器上配置Git&Github

1. 配置用户名密码

git config --global user.name "用户名"

git config --global user.email "邮箱"

2. 查看 git 账号信息

 git config user.name

 git config user.email

3.或者直接使用以下命令就可以看到整个账户信息

git config --list

4.因为服务器上还没有生成过公私秘钥对,所以用该命令生成authorized_keys id_rsa id_rsa.pub

ssh-keygen

5.查看公钥,并把它放到Github的SSH管理中

cd .ssh/

cat id_rsa.pub

6.测试链接:出现以下提示说明链接成功了

ssh -T git@github.com

7.去需要下拉的代碼倉中配置ssh

github:Sign in to GitHub · GitHub

gitee:https://gitee.com/profile/account_information

linux初始环境软件安装

1.初始环境

相关学习文档1:OpenHarmony代码操作总结

相关学习文档2:forked from OpenHarmony / arkcompiler_ets_runtime Wiki

相关学习文档3:李兴阳 / arkcompiler_ets_runtime Wiki

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git-lfs git bison flex gnupg build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev x11proto-core-dev libx11-dev libc++1 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 libtinfo5 bc npm genext2fs liblz4-tool libssl-dev ruby openjdk-8-jre-headless gdb python3-pip libelf-dev libxcursor-dev libxrandr-dev libxinerama-dev

2.下载repo

mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
将repo添加到环境变量。
vim ~/.bashrc # 编辑环境变量
export PATH=~/bin:$PATH # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc # 应用环境变量


ninja安装

相关学习配置文档:安装ninja过程记录

ninja安装有两种途径,一是通过ubuntu自带的软件库安装另一个是从GitHub上下载ninja源码自己编译

1.第一种

1.通过ubuntu自带的软件库安装

sudo apt install ninja-build

2.安装完毕后,查询版本,显示出版本号后,说明安装成功

ninja --version

2.第二种

1.打开命令行,进入你想要下载ninja源码的目录,执行如下指令:(可以先看下有沒有安裝python,我的python版本是3.10.12)

git clone git@github.com:ninja-build/ninja.git

2.进入目录内检查

cd ninja/

git checkout release

3.输入命令完成安装

python configure.py --bootstrap

4.检查版本号,确认安装成功


GN环境搭建

相关学习配置文档:GN环境搭建

1.安装clang(有些linux可不用安装,我这边下拉gn运行后发现需要clang,不清楚原因根据编译结果如需要安装可进行如下步骤,不需要则可以直接跳到2.gn)

sudo apt install clang     #安装clang

clang --version       #查询版本

ln -s ../lib/llvm-8/bin/clang clang     #建立软连接

ln -s ../lib/llvm-8/bin/clang++ clang++    #建立软连接

ll|grep clang  #过滤有clang的目录文件

clang --version  #查询版本

2.安装gn
 

Github: https://github.com/timniederhausen/gnhttp://github.com:timniederhausen/gn.git
Gitee(其中这个仓可能gn功能会有问题,准确问题可以看下面①问题的描述,如遇见请使用上面Github):https://gitee.com/openharmony/third_party_gn

1.####################git下来代码后,进行编译##############################

git clone http://github.com/timniederhausen/gn.git或

git clone https://github.com/timniederhausen/gn.git

或 git clone git@github.com:timniederhausen/gn.git

2.#########################进入 gn 目录#################################

cd gn/

3.#################################################################

python build/gen.py (没有python用python3一样(图片看下面②另一个小问题),想用python 可以用 sudo apt install python命令安装 python(如图) )

4.######################################################################

ninja -C out(编译报错如下图(③ninja问题))

5.#########等待编译结束,跑一下gn的测试代码,显示passed说明gn功能没问题####

./out/gn_unittests

6.###############编译成功后,将gn复制到/usr/bin目录下#####################

sudo cp ./out/gn /usr/bin

7.#############在任意终端中,输入gn help检测gn是否安装成功################

gn help

内涵构建问题解决

 ①问题:

root@DESKTOP-E46JARI:~/third_party_gn# ninja -C out
ninja: Entering directory `out'
ninja: no work to do.
root@DESKTOP-E46JARI:~/third_party_gn# ./out/gn_unittests
[390/687] NinjaRustBinaryTargetWriterTest.TransitiveRustDeps[140091045406592:0222/140046.706344:FATAL:values.cc(239)] Check f ailed: is_list().

原因个人大胆猜测是Gitee的third_party_gn仓的ut测试或者别的检验这部分代码有问题,所以在ninja -C out和./out/gn_unittests出了问题。

如果遇见这个问题就用Github:git clone http://github.com:timniederhausen/gn.git

②另一个小问题:如果python没有就用python3,python3不行就下python。用unbantu自带的sudo apt install python 就可以直接下载了

 ③ninja问题:

一、描述:

本来是全编报错[OHOS ERROR] [NINJA] FAILED: obj/foundation/arkui/ace_engine/adapter/ohos/entrance/ace_ohos_standard_entrance_ohos/ace_container.o
[OHOS ERROR] [NINJA] /usr/bin/ccache ../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++ -MMD -MF obj/foundation/arkui/ace_engine/adapter/ohord_entrance_ohos/ace_container.o.d -DOHOS_PLATFORM...大概率应该是编译链的版本太低,或者有问题需要重新下载拉取

后续又报错

[OHOS ERROR] [NINJA] Code:        4000
[OHOS ERROR] [NINJA]
[OHOS ERROR] [NINJA] Reason:      COMPILE Failed! Please check error in /root/linan/out/rk3568/error.log, and for more build information in /root/
[OHOS ERROR] [NINJA]
[OHOS ERROR] [NINJA] Error Type:  Ninja build error
[OHOS ERROR] [NINJA]
[OHOS ERROR] [NINJA] Description: An unknown error occurred while executing 'ninja -C'.
[OHOS ERROR] [NINJA]
[OHOS ERROR] [NINJA] Solution:    no solution
[OHOS ERROR] [NINJA]
确定构建的ninja有问题。重新构建ninja

发现报错:

[1/295] CXX src/base/files/file_enumerator.o
FAILED: src/base/files/file_enumerator.o
clang++ -MMD -MF src/base/files/file_enumerator.o.d -I../src -I. -DNDEBUG -O3 -fdata-sections -ffunction-sections -Werror -D_FILE_OFFSET_BITS=64 -__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -Wall -Wextra -Wno-unused-parameter -Wextra-semi -Wundef -std=c+-Wextra-semi-stmt -Wno-deprecated-copy -Wno-implicit-fallthrough -Wno-redundant-move -Wno-unused-variable -Wno-format -Wno-strict-aliasing -Wno-ca/base/files/file_enumerator.cc -o src/base/files/file_enumerator.o
error: unknown warning option '-Wno-cast-function-type'; did you mean '-Wno-bad-function-cast'? [-Werror,-Wunknown-warning-option]
[2/295] CXX src/base/files/file_path.o...

二、分析报错:

这个主要的问题在于python版本太低需要用python3,但是python3解析的话里面的告警无法分析,需要修改py文件

三、问题解决:

故先用查询命令看下告警信息再哪里修改:grep -r "Wno-cast-function-type" .

再去./build/gen.py:文件中屏蔽掉告警信息:

3. 用gn和ninja编译例程

#在gn仓库中,自带一个例程,路径为/gn/example/simple_build

cd /root/gn/examples/simple_build/

gn gen -C out

ninja -C out

#运行我们通过gn和ninja编译的程序

./out/hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值