首页 > 系统相关 >nginx coturn socat privoxy opencv 静态编译

nginx coturn socat privoxy opencv 静态编译

时间:2023-11-02 20:33:16浏览次数:42  
标签:nginx -- opencv prefix static pkg socat PACKAGES config

文档说明: 只记录关键的地方; 发文时间: 2023-11-02

意义: linux 环境,免安装 下载后即可使用

环境: alpine:3.18 docker clang

状态: 完善中

体验编译结果

nginx 静态编译关键点

nginx use PCRE2 library on nginx 1.21.5

hg 脚本全称是 mercurial

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 等静态库

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{$bzip2_prefix}/include -I{$libiconv_prefix}/include -I{$bzip2_prefix}/include -I{$libxml2_prefix}/include " \
LDFLAGS="\$LDFLAGS -L{$bzip2_prefix}/lib -L{$libiconv_prefix}/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={$ffmpeg_prefix} \
-DZLIB_ROOT={$zlib_prefix} \
-Dfreetype2_ROOT={$freetype_prefix} \
-DPNG_ROOT={$png_prefix} \
-DJPEG_ROOT={$jpeg_prefix} \
-DLAPACK_ROOT={$lapack_prefix} \
-DOpenBLAS_ROOT={$openblas_prefix} \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_opencv_apps=ON \
-DCMAKE_PREFIX_PATH='{$CMAKE_PREFIX_PATH}' \
-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 静态编译 稍微添加点参数即可,如下:


php prepare.php  +opencv +coturn +privoxy +socat 

参考文档

  1. nginx http3 模块
  2. 静态编译 ffmpeg

标签:nginx,--,opencv,prefix,static,pkg,socat,PACKAGES,config
From: https://www.cnblogs.com/jingjingxyk/p/17609267.html

相关文章

  • nginx设置允许跨域
    server{listen8088;server_namelocalhost;#charsetkoi8-r;#access_loglogs/host.access.logmain;add_header'Access-Control-Allow-Methods''POST,GET,OPTIONS';add_header......
  • nginx报错 [error] 612#4188: CreateFile() "C:\yjzx\nginx-1.24.0/logs/nginx.pid"
    背景无论是nginx-sstop还是nginx-sreload命令,都会出现这个错误。[error]612#4188:CreateFile()"C:\yjzx\nginx-1.24.0/logs/nginx.pid"failed(2:Thesystemcannotfindthefilespecified)查找logs下nginx.pid文件确实没有创建成功,在网上查找了下了解决办法。发......
  • 7. 从零开始编写一个类nginx工具, HTTP及TCP内网穿透原理及运行篇
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tic......
  • nginx反向代理的重定向
    bi.kailinjt.com.confserver{listen80;server_namebi.kailinjt.com;location=/{return302$scheme://$host/webroot/login.html;}location/{#return302......
  • yum安装nginx-源码编译安装nginx
    #nginx官网http://nginx.org/#nginx主要代理七层协议,也就是应用层;nginx是一个高性能HTTP和反向代理,负载均衡服务器.............#nginx默认端口是80#https默认端口是443#官网查看安装步骤http://nginx.org/——>documentation——>Installingnginx——>InstallationonLinux,pac......
  • nginx server_name配置多域名的坑
    问题介绍项目配置了多个域名,如下,php代码中有获取 $_SERVER['SERVER_NAME'] 的值server{ server_namea.demo.comb.demo.com;...}当访问a.demo.com时,其获取的值是符合预期的。但是当访问b.demo.com时,其获取的值还是a.demo.com,导致代码中的判断出现错误......
  • Opencv中goodFeaturesToTrack函数(Harris角点、Shi-Tomasi角点检测)算子速度的进一步
    搜索到某个效果很好的视频去燥的算法,感觉效果比较牛逼,就是速度比较慢,如果能做到实时,那还是很有实用价值的。于是盲目的选择了这个课题,遇到的第一个函数就是角点检测,大概六七年用过C#实现过Harris角点以及SUSAN角点。因此相关的理论还是有所了解的,不过那个时候重点在于实现,对于......
  • Nginx 安全日志分析可视化
    之前介绍过ModSecurity这款优秀的开源WAF,它是一个入侵检测与阻止的引擎,原本是Apache的一个模块,现在可作为单独模块编译添加到Nginx服务中虽然这款WAF很优秀,但是使用起来并没有那么容易,之前也整理了文章介绍它的原理和规则,然而还有一个问题,就是它的日志分析,之前介绍原理规则......
  • Nginx零成本 易操作实现网站视频加速
    最近有朋友做了个网站,网站上面放了几个视频,觉得视频播放慢、卡顿,想让我帮忙优化下,今天就介绍个零成本,操作又简单的方法优化网站上视频播放速度目前很多人网站上放视频,除了用第三方视频平台连接,比如腾讯、优酷、爱奇艺、B站等的视频连接,就是直接将mp4格式的视频放网站目录下,直接嵌入......
  • 如何做 Nginx 安全日志分析可视化,看完这一篇,秒懂!
    之前介绍过ModSecurity这款优秀的开源WAF,它是一个入侵检测与阻止的引擎,原本是Apache的一个模块,现在可作为单独模块编译添加到Nginx服务中虽然这款WAF很优秀,但是使用起来并没有那么容易,之前也整理了文章介绍它的原理和规则,然而还有一个问题,就是它的日志分析,之前介绍原理规则......