龍芯平臺編譯安裝 7zip

環境

操作系統:Debian 11 Bullseye、銀河麒麟(Kylin)V10 SP1、紅旗(RedFlag) V11、Loongnix 20

適用架構:MIPS64EL(龍芯)3A3000、3A4000

 

簡介

2021 年 4 月,龍芯中科發佈了 LoongArch 指令集,這與之前的 MIPS64EL 是不兼容的。因此選擇操作系統時要注意架構的支持情況。3A4000 及之前的 CPU 兼容 MIPS64EL 指令集,3A5000 及之後的 CPU 使用 LoongArch 指令集。

 

下載源代碼

https://www.7-zip.org/download.html

安裝編譯環境

sudo apt install g++

編譯 7za

進入目錄

mkdir 7z2201-src

tar xvJf 7z2201-src.tar.xz -C 7z2201-src

靜態編譯 7za(靜態鏈接-static)

chmod +w 7z2201-src/CPP/7zip/7zip_gcc.mak

nano 7z2201-src/CPP/7zip/7zip_gcc.mak

修改 7z2201-src/CPP/7zip/7zip_gcc.mak 文件的第45行的 LDFLAGS_STATIC_2,由空賦值爲 -static

LDFLAGS_STATIC_2 = -static
# -static
# -static-libstdc++ -static-libgcc

 

靜態編譯

cd 7z2201-src/CPP/7zip/Bundles/Alone

$ make -f makefile.gcc

$ file 7za
7za: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=22269394e402fbccfb35017d21b3ffb9eb4994bf, for GNU/Linux 3.2.0, stripped

動態編譯7za
$ make -f makefile.gcc

$ file 7za
7za: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=5e07e05837089b8efb2627ff9d67be881dda4c19, for GNU/Linux 3.2.0, stripped

$ ldd 7za
linux-vdso.so.1 (0x00007ffd17262000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5d5404b000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5d53e69000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5d53e4e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5d53c5c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5d5421c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5d53b0d000)

2.2 linux編譯7z.so
進入目錄

cd 7z2107-src\CPP\7zip\Bundles\Format7zF

動態編譯7z.so

$ make -f makefile.gcc

$ file 7z.so
7z.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5c66ae8bb982aae3c8c37f0eba0c91a30fe152ec, stripped
$ ldd 7z.so
linux-vdso.so.1 (0x00007fff24d4c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9ec200f000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9ec1e2d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9ec1e12000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9ec1c20000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9ec22f2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9ec1ad1000)
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章