龙芯平台编译安装 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)
 

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