您的位置: 首页 » 翻越奥义 » 静态编译shadowsocks-libev 3.3.4

静态编译shadowsocks-libev 3.3.4

作者:liyangyijie / 时间:February 23, 2020 /分类:翻越奥义 / 标签:none /阅览次数:4,216

使用musl-cross-make进行编译。

musl-cross-make配置如下:

TARGET = x86_64-linux-musl
OUTPUT = /mmx64
GCC_VER = 9.2.0
COMMON_CONFIG += CFLAGS="-g0 -Os" CXXFLAGS="-g0 -Os" LDFLAGS="-s"

可以得到如下:
1 (1).png
2 (1).png
当然需要先指定编译工具和文件夹,可以写到文件里面(例如/mmx64/test/amd64),用的时候source下就行。

export CC=/mmx64/bin/x86_64-linux-musl-gcc AS=/mmx64/bin/x86_64-linux-musl-as LD=/mmx64/bin/x86_64-linux-musl-ld CXX=/mmx64/bin/x86_64-linux-musl-g++ AR=/mmx64/bin/x86_64-linux-musl-ar RANLIB=/mmx64/bin/x86_64-linux-musl-ranlib
export prefix=/mmx64/test/dists
export host=x86_64-linux-musl
export PATH=/mmx64/bin:$PATH

关键是静态编译,依赖都需要静态库,要一步一步编译。
依赖以及版本如下:

PCRE_VER=8.44
PCRE_FILE="https://ftp.pcre.org/pub/pcre/pcre-$PCRE_VER.tar.gz"

MBEDTLS_VER=2.16.5
MBEDTLS_FILE="https://tls.mbed.org/download/mbedtls-$MBEDTLS_VER-gpl.tgz"

LIBSODIUM_VER=1.0.17
LIBSODIUM_FILE="https://download.libsodium.org/libsodium/releases/libsodium-$LIBSODIUM_VER.tar.gz"

LIBEV_VER=4.31
LIBEV_FILE="http://dist.schmorp.de/libev/libev-$LIBEV_VER.tar.gz"

LIBC_ARES_VER=1.14.0
LIBC_ARES_FILE="https://c-ares.haxx.se/download/c-ares-$LIBC_ARES_VER.tar.gz"

源码都放到/mmx64/test/下,成品放到/mmx64/test/dists,编译时的参数、注意点如下:

#指定好编译工具和文件夹
source /mmx64/test/amd64

#pcre
CPPFLAGS="-DNEED_PRINTF" ./configure --prefix=$prefix/pcre --host=$host --enable-jit --enable-utf8 --enable-unicode-properties --disable-shared
make && make install

#mbedtls 
##需要直接修改 Makefile 把prefix改成/mmx64/test/dists/mbedtls
make && make install

#libsodium
./configure --prefix=$prefix/libsodium --host=$host --disable-ssp --disable-shared
make && make install

#libev
./configure --prefix=$prefix/libev --host=$host --disable-shared
make && make install

#libc-ares
./configure --prefix=$prefix/libc-ares --host=$host --disable-shared
make && make install

可以获得如下:
3 (1).png
然后下载shadowsocks-libev源码,

wget https://github.com/shadowsocks/shadowsocks-libev/releases/download/v3.3.4/shadowsocks-libev-3.3.4.tar.gz

进行编译。

LDFLAGS="-Wl,-static -s -static-libgcc -L$prefix/libev/lib" CFLAGS="-g0 -Os -I$prefix/libev/include" CXXFLAGS="-g0 -Os" ./configure --prefix=$prefix/shadowsocks-libev --disable-ssp --disable-documentation --with-sodium=$prefix/libsodium --with-mbedtls=$prefix/mbedtls --with-pcre=$prefix/pcre --with-cares="$prefix/libc-ares"
make && make install

在源码src文件夹下可见ss-server,最后用upx压缩下。
4 (1).png
末付文件。
https://github.com/fanyueciyuan/eazy-for-ss/raw/master/upx_ss_libev_3.3.4.tar

上一篇 : DYHTPS 下一篇 : orangpi_one备忘

添加新评论