背景:在一款国产的arm上的linux 64位的系统上,没有htop,这里是手工交叉编译的部分笔记
文章目录
- 写在前面
- 下载包
- 二、编译脚本
- 1.ncurses
- 2.htop
- 之后我会把压缩包放在这里
- 资源
写在前面
因为种种原因,需要手工编译
网上有几篇,但一方面,试过不成;版本也太旧。
所以,这里我重写一个。
最后我会压个包,放到资源里。里面包含原始包和编译脚本。
https://www.cnblogs.com/liangwode/p/5817594.html
https://blog.csdn.net/yuanlu837/article/details/119222309
https://blog.csdn.net/NRWHF/article/details/131035343
下载包
htop-2.2.0.tar.gz
ncurses-6.3.tar.gz
https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.3.tar.gz
应该htop-3.0.5,也没有问题。
但这里我是用的2.2.0
二、编译脚本
1.ncurses
代码如下(示例):
./configure CC=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ STRIP=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip --host=aarch64-linux-gnu --with-shared --enable-widec --disable-stripping --prefix=/data/htop/htop2_2/install_ncurses
解读:
–with-shared --enable-widec 这两句是最重要的,如果不加,则链接htop时,找不到库。
–disable-stripping 这个也是我自己发现的,没有必要一定要strip,无所谓的。但strip后,在install 阶段,progs不能过。
注意,网上的方案,我试过不行,类似这样的:
# /bin/bash
export PRJROOT=$(PWD)
cd ncurses-6.3
./configure CC=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
CXX=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
--prefix=${PRJROOT}/install_ncurses \
--without-cxx --without-cxx-binding \
--without-ada --without-manpages \
--without-progs --without-tests \
--with-shared \
--host=aarch64-linux-gnu
2.htop
代码如下(示例):
export PKG_CONFIG_PATH=/data/htop/htop2_2/install_ncurses/lib/pkgconfig
export CPPFLAGS="-I/data/htop/htop2_2/install_ncurses/include"
export LDFLAGS="-L/data/htop/htop2_2/install_ncurses/lib"
export NCURSES_CONFIG=/data/htop/htop2_2/install_ncurses/bin/ncurses6-config
./configure --host=aarch64-linux-gnu \
CC=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
CXX=/opt/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
--prefix=/data/htop/htop2_2/install_htop
之后我会把压缩包放在这里
资源
https://download.csdn.net/download/haoyujie/89967371
拷到目标机后,
export TERM=linux 不过,上面这句可能没有用。
export TERMINFO=/usr/share/terminfo
这句有效