目录:
先下载好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/gn或http://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