交叉編譯procps

2021-10-09 20:06:16 字數 1566 閱讀 2649

板子原本系統軟體,top命令來自busybox 內部自帶的procps,不支援顯示程序優先順序

開源的procps-ng原始碼交叉編譯可以得到功能較豐富的top命令,(以top命令舉例,還有ps pmap vmstat watch等命令)

procps 依賴ncurses 庫,交叉編譯ncurses-6.0 source code

./configure --prefix=/home/faun/backup/ncurses-6.0 --host=arm-linux-gnueabihf  --with-shared

make

/backup/ncurses-6.0/lib$ ls

libncurses.so.6.0 libpanel.so.6

交叉編譯procps

ncurses_cflags="-i/backup/ncurses-6.0/include" ncurses_libs="-l/backup/ncurses-6.0/lib -lncurses -ltinfo"./configure --host=arm-linux-gnueabihf --prefix=/backup/procps-ng-3.3.16/bin --exec-prefix=/backup/procps-ng-3.3.16/bin --libdir=/backup/procps-ng-3.3.16/bin --enable-static --disable-kill --with-ncurses

vim config.h

//mark rpl_malloc

make

/backup/procps-ng-3.3.16/bin$ ls

free pgrep pidof pkill pmap ps pwdx slabtop tload top uptime vmstat w watch

/backup/procps-ng-3.3.16/usr/lib$ ls

libprocps.a libprocps.la libprocps.so libprocps.so.8 libprocps.so.8.0.2 pkgconfig

將libncurses.so.6  libprocps.so.8.0.2 和top 命令copy到板子裡面,執行./top提示terminal 設定有問題,重設terminal環境變數為vt100(從ubuntu 電腦cop,這個不是elf,可以與arm板子共用),建立terminal database如下目錄結構

/mnt # ./top

terminals database is inaccessible

/mnt # ls /usr/share/terminfo/v/vt100

/usr/share/terminfo/v/vt100

/mnt # export term=vt100

再次執行top顯示成功

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...