2013-08-23 2 views
3

Я хочу построить nginx из источника. поэтому я пишу Баш скрипт, чтобы сделать это:почему -Wreat вызвать ошибку конфигурации

#!/bin/bash 
export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PATH" 
dir=$(realpath `dirname $BASH_SOURCE`) 

cd $dir/modules 
for folder in * 
do 
    ADD_MODULES="$ADD_MODULES \ 
    --add-module=$dir/modules/$folder" 
done 

cd $dir/nginx 
./auto/configure \ 
--prefix=/usr/share/nginx \ 
--sbin-path=/usr/sbin/nginx \ 
--conf-path=/etc/nginx/nginx.conf \ 
--error-log-path=/var/log/nginx/error.log \ 
--http-log-path=/var/log/nginx/access.log \ 
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body \ 
--http-proxy-temp-path=/var/lib/nginx/tmp/proxy \ 
--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \ 
--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \ 
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi \ 
--pid-path=/run/nginx.pid \ 
--lock-path=/run/lock/subsys/nginx \ 
--user=nginx \ 
--group=nginx \ 
--with-file-aio \ 
--with-ipv6 \ 
--with-http_ssl_module \ 
--with-http_spdy_module \ 
--with-http_realip_module \ 
--with-http_addition_module \ 
--with-http_xslt_module \ 
--with-http_image_filter_module \ 
--with-http_geoip_module \ 
--with-http_stub_status_module \ 
--with-http_sub_module \ 
--with-http_dav_module \ 
--with-http_flv_module \ 
--with-http_mp4_module \ 
--with-http_gunzip_module \ 
--with-http_gzip_static_module \ 
--with-http_random_index_module \ 
--with-http_secure_link_module \ 
--with-http_degradation_module \ 
--with-http_stub_status_module \ 
--with-http_perl_module \ 
--with-mail \ 
--with-mail_ssl_module \ 
--with-pcre \ 
--with-debug \ 
$ADD_MODULES \ 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \ 
--with-ld-opt='-Wl,-z,relro -Wl,-E' 

if [ $? -ne 0 ]; then 
    exit 
fi 

read -p 'Run make & make install? [Y/n]> ' RUN 

if [ "x$RUN" = "x" -o "x$RUN" = "xY" -o "x$RUN" = "xy" ]; then 
    make -j8 
    make install 
fi 

, когда я запускаю этот скрипт, configure успеха, но есть предупреждение лакомство как ошибка (неиспользованные но-набор переменных) во время компиляции и make выхода с этой ошибкой.

Итак, я редактировать "--with-сс-OPT" вариант, изменение "-Wall" в "-Werror", на этот раз configure неудачу с ошибкой

./auto/configure: error: the HTTP XSLT module requires the libxml2/libxslt 
libraries. You can either do not enable the module or install the libraries. 

Тогда я меняю "-Werror" к "-Werror = не используется, но набора переменных", и configure неудачно с ошибкой

./auto/configure: no supported file AIO was found 
Currently file AIO is supported on FreeBSD 4.3+ and Linux 2.6.22+ only 

(я пытался удалить -W вариант, но это же с -Wall)

Кто знает почему ?!

EDIT:

решает путем редактирования Nginx configure файлов опции ...

я заметил, что хвост make журнала

куб.см -c -pipe -О -W -Wall -Wpointer-arith -Wno-unused- параметр -Werror -g -O2 -g -pipe -Werror=unused-but-set-variable -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -I SRC/ядро ​​-I (.... и т.д.

Я думаю, что это проблема является Nginx configure авто preend некоторые CC-opt bedore mine

поэтому я использую grep '\-Wall' ./auto -R и grep '\-Werror' ./auto -R нашел их и удалил.

сейчас у меня есть «полный» контроль над CC-флагом.

спасибо за ответ АиР: D

ответ

2

Удалить опцию --with-file-aio. Это не полезно.

Либо удалите опцию --with-http_xslt_module, либо установите libxml2 и libxslt.

В общем, не используйте --with и --enable варианты, которые вы не понимаете.

+0

Я использую параметры конфигурации из 'nginx -V' из пакета yum, но добавляю некоторые сторонние модули ($ ADD_MODULES). Я хочу знать разницу между '-Wall' и' -Werror' и почему они действуют во время настройки. – GongT

2

Первая проблема (ошибка: модуль HTTP XSLT требует libxml2/libxslt) может быть разрешен путем установки пакета libxslt-devel.

+3

для меня (на ubuntu) это было 'libxslt1-dev', которое мне нужно было установить –

Смежные вопросы