nginx交叉編譯

2021-09-19 13:51:20 字數 4372 閱讀 2459

qq群:852283276

b站:主頁

nginx開源**的交叉編譯

交叉編譯hi3536上面使用的nginx

交叉編譯 nginx ,基於mipsel平台

交叉編譯 nginx

nginx1.6.3交叉編譯成功的**

nginx 交叉編譯 ( 上 )

nginx 交叉編譯 (下)

nginx 交叉編譯及上傳大檔案處理

openssl交叉編譯問題

為64位armv8架構開發板交叉編譯openssl-1.0.2l

交叉編譯openssl

nginx: download

zlib home page

pcre - perl compatible regular expressions

openssl

編輯auto/cc/name,

ngx_feature_run=yes -> ngx_feature_run=no
編輯auto/types/sizeof

$cc

$cc_test_flags

$cc_aux_flags -> gcc $cc_test_flags

$cc_aux_flags

ngx_size=

`$ngx_autotest`

-> ngx_size=4 (armv7)

執行./configure

$ ./configure --with-cc=arm-xilinx-linux-gnueabi-gcc --with-cpp=arm-xilinx-linux-gnueabi-g++ --prefix=

$cur_path/zynq-static-$petalinux_ver --with-pcre=

$parent_path/pcre-8.43 --with-zlib=

$parent_path/zlib-1.2.11 --with-openssl=

$parent_path/openssl-1.0.2r --user=root --group=root

編輯objs/makefile,更新pcre和openssl的編譯命令,

$ ./configure --disable-shared -> ./configure --disable-shared --host=arm-xilinx-linux-gnueabi

$ ./config --prefix=/home/zc/fdk_develop/package/openssl-1.1.0i/.openssl no-shared no-threads -> ./config --prefix=/home/zc/fdk_develop/package/openssl-1.1.0i/.openssl no-shared no-threads no-asm --cross-compile-prefix=arm-xilinx-linux-gnueabi-

去掉openssl路徑下的makefile的-m64選項,

$ sed -i "s/-m64//g" makefile
編譯,

$ make

$ make

install

生成的檔案,nginx應用在sbin下,大小為6mb,

zc@ubuntu:~/fdk_develop$ ls -l package/nginx-1.14.2/zynq-static-2015.2.1/

total 16

drwxrwxr-x 2 zc zc 4096 apr 26 09:37 conf

drwxr-xr-x 2 zc zc 4096 apr 26 09:37 html

drwxrwxr-x 2 zc zc 4096 apr 26 09:37 logs

drwxrwxr-x 2 zc zc 4096 apr 26 09:37 sbin

armv7,

nginx: [emerg]

"worker_processes" directive invalid value in /usr/nginx/conf

命令列表,

root@zynqmp:~# ./nginx/sbin/nginx -h

nginx version: nginx/1.14.2

usage: nginx [-?hvvttq]

[-s signal]

[-c filename]

[-p prefix]

[-g directives]

options:

-?,-h : this help

-v : show version and exit

-v : show version and configure options then

exit

-t :

test configuration and exit

-t :

test configuration, dump it and exit

-q : suppress non-error messages during configuration testing

-s signal : send signal to a master process: stop, quit, reopen, reload

-p prefix :

set prefix path (default: /home/zc/fdk_develop/package/nginx-1.14.2/zynqmp-static-2018.2/)

-c filename :

set configuration file

(default: conf/nginx.conf)

-g directives :

set global directives out of configuration file

嵌入式平台不能用start來啟動nginx,下面這種方法也不會阻塞終端,

root@zynqmp:~/nginx# ./sbin/nginx -p .

root@zynqmp:~/nginx# ps

pid user time command

... 2118 root 0:00 nginx: master process ./sbin/nginx -p .

2119 nobody 0:00 nginx: worker process

2120 root 0:00 ps

執行之後產生了若干temp資料夾,

root@zynqmp:~/nginx# ls -l

total 36

drwx------ 2 nobody root 4096 jan 26 12:12 client_body_temp

drwxrwxr-x 2 1000 1000 4096 jan 26 12:48 conf

drwx------ 2 nobody root 4096 jan 26 12:12 fastcgi_temp

drwxr-xr-x 2 1000 1000 4096 jan 26 12:48 html

drwxrwxr-x 2 1000 1000 4096 apr 28 2019 logs

drwx------ 2 nobody root 4096 jan 26 12:12 proxy_temp

drwxrwxr-x 2 1000 1000 4096 jan 26 12:48 sbin

drwx------ 2 nobody root 4096 jan 26 12:12 scgi_temp

drwx------ 2 nobody root 4096 jan 26 12:12 uwsgi_temp

root@zynqmp:~# ./nginx/sbin/nginx -p ./nginx -s reload

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...