iotop编译
armv8
一、环境准备
1.下载iotop源码链接:
https://objects.githubusercontent.com/github-production-release-asset-2e65be/23103328/b7f8965a-109e-4127-a6b3-526fb8a5e7e3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250317%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250317T110622Z&X-Amz-Expires=300&X-Amz-Signature=0dacdc4ce11197e56f282f4ce52098506f8581b3941385b92c83955ca5e3fd21&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Diotop-1.27.tar.xz&response-content-type=application%2Foctet-stream
2.放在/home/motl/src/文件夹下,解压缩tar -xf iotop-1.27.tar.xz

3.进入/home/motl/src/iotop-1.27/路径下,make
Make命令:
make CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang AR=/home/motl/opt/native/llvm/bin/llvm-ar RANDLIB=/home/motl/opt/native/llvm/bin/llvm-ranlib
报错:缺少ncurses头文件,少ncurses库

3.1下载ncurses库的源码:https://ftp.gnu.org/pub/gnu/ncurses/
下载到/home/motl/src/下,解压缩:tar -xzf ncurses-6.5.tar.gz并进入/home/motl/src/ncurses-6.5/文件下

3.2使用makefile方式配置:
./configure --host aarch64-linux CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang --prefix=/home/motl/install/ncurses --disable-stripping --with-shared --with-termlib CXX=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang++

最终没有报错

3.3.make -j32 最终没有报错

3.4权限安装:sudo make install

最终没有报错

3.5安装后在/home/motl/install/里面生成如下文件

4.回到/home/motl/src/iotop-1.27/目录下,将缺少的ncurses头文件头文件复制过去: cp /home/motl/install/ncurses_aarch64/include/ncursesw/curses.h /home/motl/src/iotop-1.27/src/
![]()
5.继续make CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang AR=/home/motl/opt/native/llvm/bin/llvm-ar RANDLIB=/home/motl/ohos_1/native/llvm/bin/llvm-ranlib
报错:没有<ncursesw/ncurses_dll.h>,需要加显示路径

6需要设置环境变量:
export PARENT_DIR=/home/motl/opt/
export OHOS_SDK=$PARENT_DIR/
export CC="${OHOS_SDK}/native/llvm/bin/aarch64-unknown-linux-ohos-clang --target=aarch64-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/aarch64-unknown-linux-ohos-clang++ --target=aarch64-linux-ohos"
export CFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_aarch64/include -I/home/motl/install/ncurses6.5_aarch64/include/ncursesw/"
export CPPFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_aarch64/include -I/home/motl/install/ncurses6.5_aarch64/include/ncursesw/"
export LDFLAGS="-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -ltinfo"
库路径没有正确设置
在LDFLAGS中设置库路径:export LDFLAGS="-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -L/home/motl/install/ncurses-6.5_aarch64/lib/ -ltinfo"
错误:

解决方法:创建符号链接,在 /home/motl/install/ncurses-6.5_aarch64/lib/目录下7.创建符号链接:
ln -sf $PREFIX/ncurses_aarch64/lib/libtinfow.so.6 $PREFIX/ncurses_aarch64/lib/libtinfo.so
验证链接是否成功:ls -l /home/motl/install/ncurses-6.5_aarch64/lib/libtinfo.so
输出应该是:-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -ltinfo
重新编译:make clean
make
最后生成一个iotop
![]()
然后手动下载到桌面上
二、推进板子验证
1、先正常连接上板子。
cmd进入,先修改读写权限hdc shell mount -o rw,remount /
2、推进板子hdc file send D:\install_unbuntu\iotop\iotop_aarch64 .
hdc file send D:\install_unbuntu\iotop\iotop_aarch64\libtinfow.so .
3、hdc shell进入板子,ls查看文件是否存在

4、测试终端类型:TERMINFO=/share/terminfo(自己传的ncurses的share目录)
TERM=xterm-256color,
环境变量命令如下所示

5、执行测试文件:iotop
最终结果:

armv7的命令如下:
make CC=/home/motl/opt/native/llvm/bin/armv7-unknown-linux-ohos-clang AR=/home/motl/ohos_1/native/llvm/bin/llvm-ar RANDLIB=/home/motl/ohos_1/native/llvm/bin/llvm-ranlib
编译ncurses库的命令:
./configure --host armv7-linux CC=/home/motl/ohos_1/native/llvm/bin/armv7-unknown-linux-ohos-clang --prefix=/home/motl/install/ncurses-6.5_armv7 --disable-stripping --with-shared --with-termlib CXX=/home/motl/ohos_1/native/llvm/bin/armv7-unknown-linux-ohos-clang++
创建符号链接:ln -s /home/motl/install/ncurses-6.5_armv7/lib/libtinfo.so.6 /home/motl/install/ncurses-6.5_armv7/lib/libtinfo.so
环境变量的设置命令:
export PARENT_DIR=/home/motl/ohos_1/
export OHOS_SDK=$PARENT_DIR/
export CC="${OHOS_SDK}/native/llvm/bin/armv7-unknown-linux-ohos-clang --target=arm-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/armv7-unknown-linux-ohos-clang++ --target=arm-linux-ohos"
export CFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_armv7/include -I/home/motl/install/ncurses6.5_armv7/include/ncursesw/ -march=armv7a"
export CPPFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_armv7/include -I/home/motl/install/ncurses6.5_armv7/include/ncursesw/ -march=armv7a"
export LDFLAGS="-L/home/motl/install/ncurses-6.5_armv7/lib/ -lncursesw -ltinfo"
其余操作流程如上armv8一样
环境变量设置:
export LD_LIBRARY_PATH=/iotop_armv7/ncurses-6.5_armv7/lib
export TERMINFO=/iotop_armv7/ncurses-6.5_armv7/terminfo
TERM=xterm-256color
chmod 755 iotop
iotop

最终结果如下:

更多推荐
所有评论(0)