静态编译shadowsocks-libev 3.3.4
使用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"
可以得到如下:
当然需要先指定编译工具和文件夹,可以写到文件里面(例如/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
可以获得如下:
然后下载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压缩下。
末付文件。
https://github.com/fanyueciyuan/eazy-for-ss/raw/master/upx_ss_libev_3.3.4.tar
上一篇 : DYHTPS 下一篇 : orangpi_one备忘