nginx coturn socat privoxy opencv 静态编译
文档说明: 只记录关键的地方; 发文时间: 2023-11-02
意义: linux 环境,免安装 下载后即可使用
环境: alpine:3.18 docker clang
状态: 完善中
体验编译结果
nginx 静态编译关键点
nginx use PCRE2 library on nginx 1.21.5
hg 脚本全称是 mercurial (基于python 的 分布式版本控制系统)
openssl zlib pcpre2 等静态库需要提构建好
nginx 静态编译,更多配置:nginx.php
hg clone -r default --rev=1 http://hg.nginx.org/nginx cd nginx cp -f auto/configure configure ./configure --help PACKAGES=" libxml-2.0 libexslt libxslt openssl zlib" PACKAGES="\$PACKAGES libpcre2-16 libpcre2-32 libpcre2-8 libpcre2-posix" CPPFLAGS="$(pkg-config --cflags-only-I --static $PACKAGES)" LDFLAGS="$(pkg-config --libs-only-L --static $PACKAGES)" LIBS="$(pkg-config --libs-only-l --static $PACKAGES)" ./configure \ --prefix=/usr/local/nginx/ \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-http_realip_module \ --with-http_auth_request_module \ --with-http_v2_module \ --with-http_v3_module \ --with-http_flv_module \ --with-http_sub_module \ --with-stream \ --with-stream_ssl_preread_module \ --with-stream_ssl_module \ --with-threads \ --with-cc-opt=" -O2 $CPPFLAGS " \ --with-ld-opt=" -static $LDFLAGS " make -j $(nproc) make install
coturn 静态编译
openssl zlib libevent hiredis libmongoc 等静态库需要提构建好
coturn 静态编译,更多配置:coturn.php
PACKAGES='sqlite3' PACKAGES="$PACKAGES libevent libevent_core libevent_extra libevent_openssl libevent_pthreads" PACKAGES="$PACKAGES hiredis" PACKAGES="$PACKAGES libbson-static-1.0 libmongoc-ssl-1.0 libmongoc-static-1.0 " export SSL_CFLAGS="$(pkg-config --cflags-only-I --static openssl ) " export SSL_LIBS="$(pkg-config --libs --static openssl ) " export CPPFLAGS="$(pkg-config --cflags-only-I --static $PACKAGES)" export LDFLAGS="$(pkg-config --libs-only-L --static $PACKAGES) --static " export LIBS="$(pkg-config --libs-only-l --static $PACKAGES) -lstdc++ -lm " # export CFLAGS="-O3 -g -std=gnu11 -Wall -static " export DBCFLAGS="$(pkg-config --cflags --static libpq sqlite3 hiredis libbson-static-1.0 libmongoc-ssl-1.0 libmongoc-static-1.0 )" export DBLIBS="$(pkg-config --libs --static libpq sqlite3 hiredis libbson-static-1.0 libmongoc-ssl-1.0 libmongoc-static-1.0 )" export OSLIBS="$(pkg-config --libs --static $PACKAGES) -lstdc++ -lm " export OSCFLAGS=$CPPFLAGS sed -i.backup "s/libmongoc-1.0/libmongoc-static-1.0/" ./configure ./configure \ --prefix=/usr/local/coturn/ make -j $(nproc) make install
socat 静态编译
socat 静态编译,更多配置:socat.php
PACKAGES='openssl readline' CPPFLAGS="$(pkg-config --cflags-only-I --static $PACKAGES)" \ LDFLAGS="$(pkg-config --libs-only-L --static $PACKAGES)" \ LIBS="$(pkg-config --libs-only-l --static $PACKAGES)" \ CFLAGS="-static -O2 -Wall -fPIC -DWITH_OPENSSL" \ ./configure \ --prefix=/usr/local/socat/ \ --enable-readline \ --enable-openssl-base=/usr/local/openssl/ make -j $(nproc) make install
privoxy 静态编译
privoxy 静态编译,更多配置:privoxy.php
autoheader autoconf PACKAGES="openssl zlib" PACKAGES="$PACKAGES libbrotlicommon libbrotlidec libbrotlienc " PACKAGES="$PACKAGES libpcre libpcre16 libpcre32 libpcrecpp libpcreposix" CPPFLAGS="$(pkg-config --cflags-only-I --static $PACKAGES )" \ LDFLAGS="$(pkg-config --libs-only-L --static $PACKAGES )" \ LIBS="$(pkg-config --libs-only-l --static $PACKAGES )" \ PCRE_STATIC=YES \ ./configure \ --prefix=/usr/local/privoxy/ \ --enable-static-linking \ --with-openssl \ --without-mbedtls \ --with-brotli \ --with-docbook=yes make -j $(nproc) make install
opencv 静态编译
待完善
需要提前准备好,ffmpeg zlib openssl libarchive libiconv 等静态库(复用swoole-cli 静态库构建流程)
opencv 静态编译,更多配置:opencv.php
PACKAGES='openssl ' PACKAGES="$PACKAGES zlib" PACKAGES="$PACKAGES libxml-2.0" PACKAGES="$PACKAGES liblzma libzstd liblz4 " PACKAGES="$PACKAGES libavcodec libavdevice libavfilter libavformat libavutil libswresample libswscale" PACKAGES="$PACKAGES libwebp libpng libpng16 libjpeg libturbojpeg SvtAv1Enc SvtAv1Dec " PACKAGES="$PACKAGES dav1d sdl2 aom freetype2 gmp lcms2 " # libtiff-4 PACKAGES="$PACKAGES libbrotlicommon libbrotlidec libbrotlienc" PACKAGES="$PACKAGES x264 vpx ogg opus openh264 libpcap fdk-aac fribidi librabbitmq x265 gflags " PACKAGES="$PACKAGES fftw3q Imath libglog openblas blas64 lapack64 blas" CPPFLAGS="$(pkg-config --cflags-only-I --static $PACKAGES)" LDFLAGS="$(pkg-config --libs-only-L --static $PACKAGES) " LIBS="$(pkg-config --libs-only-l --static $PACKAGES)" CPPFLAGS="$CPPFLAGS -I/usr/local/bzip2/include -I/usr/local/libiconv/include -I/usr/local/libxml2/include " LDFLAGS="$LDFLAGS -L/usr/local/bzip2/lib -L/usr/local/libiconv/lib" LIBS="$LIBS -lbz2 -liconv " mkdir -p build cd build cmake .. \ -G Ninja \ -DCMAKE_INSTALL_PREFIX=/usr/local/opencv \ -DCMAKE_POLICY_DEFAULT_CMP0074=NEW \ -DOPENCV_EXTRA_MODULES_PATH="../opencv_contrib/modules" \ -DCMAKE_CXX_STANDARD=14 \ -DCMAKE_C_STANDARD=11 \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=OFF \ -DOpenCV_STATIC=ON \ -DENABLE_PIC=ON \ -DWITH_FFMPEG=ON \ -DFFMPEG_ROOT=/usr/local/ffmpeg \ -DZLIB_ROOT=/usr/local/zlib \ -Dfreetype2_ROOT=/usr/local/freetype \ -DPNG_ROOT=/usr/local/png \ -DJPEG_ROOT=/usr/local/jpeg \ -DLAPACK_ROOT=/usr/local/lapack \ -DOpenBLAS_ROOT=/usr/local/openblas \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_opencv_apps=ON \ -DBUILD_opencv_js=OFF \ -DBUILD_JAVA=OFF \ -DBUILD_CUDA_STUBS=OFF \ -DBUILD_FAT_JAVA_LIB=OFF \ -DBUILD_ANDROID_SERVICE=OFF \ -DBUILD_OBJC=OFF \ -DBUILD_KOTLIN_EXTENSIONS=OFF \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_PYTHON_EXAMPLES=ON \ -DBUILD_DOCS=ON ninja ninja install
使用已经准备好的脚本
详见 ffmpeg 静态编译 稍微添加点参数即可,如下:
复用swoole-cli 静态库构建流程
php prepare.php +opencv +coturn +privoxy +socat
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2022-11-02 PHP快速连接数据库
2022-11-02 上传整个文件夹
2022-11-02 5行代码写完文件上传-PHP版
2022-11-02 快速安装和使用swoole的办法