2017-05-23 4 views
1

WurflでNginxをビルドしようとするとビルドエラーが発生します。私はCentOS7のVMで実行している、他のモジュールとnginxを組み合わせ、他のフラグを指定することは私にとっては何の問題も引き起こしていないようです。しかし、私がwurflモジュールにバンドルしようとすると失敗します。私は最新の安定nginxの、そして昨日から引っ張っWURFL、とgcc 5.3.1で構築しようとしていますwurfl nginxビルドエラー

  -o objs/addon/src/ngx_http_wurfl_module.o \ 
     ../src/ngx_http_wurfl_module.c 
../src/ngx_http_wurfl_module.c:63:5: error: unknown type name ‘wurfl_useragent_priority’ 
    wurfl_useragent_priority useragent_priority; 
    ^
../src/ngx_http_wurfl_module.c:86:15: error: ‘WURFL_UPDATER_FREQ_DAILY’ undeclared here (not in a function) 
    {"DAILY", WURFL_UPDATER_FREQ_DAILY}, 
      ^
../src/ngx_http_wurfl_module.c:86:5: error: missing initializer for field ‘value’ of ‘nginx_wurfl_updater_frequency_t {aka const struct <anonymous>}’ [-Werror=missing-field-initializers] 
    {"DAILY", WURFL_UPDATER_FREQ_DAILY}, 
    ^
../src/ngx_http_wurfl_module.c:82:15: note: ‘value’ declared here 
    const int value; 
      ^
../src/ngx_http_wurfl_module.c:87:16: error: ‘WURFL_UPDATER_FREQ_WEEKLY’ undeclared here (not in a function) 
    {"WEEKLY", WURFL_UPDATER_FREQ_WEEKLY}, 
       ^
../src/ngx_http_wurfl_module.c:87:5: error: missing initializer for field ‘value’ of ‘nginx_wurfl_updater_frequency_t {aka const struct <anonymous>}’ [-Werror=missing-field-initializers] 
    {"WEEKLY", WURFL_UPDATER_FREQ_WEEKLY}, 
    ^
../src/ngx_http_wurfl_module.c:82:15: note: ‘value’ declared here 
    const int value; 
      ^
In file included from src/core/ngx_core.h:58:0, 
       from ../src/ngx_http_wurfl_module.c:22: 
../src/ngx_http_wurfl_module.c: In function ‘ngx_http_wurfl_init_main_conf’: 
../src/ngx_http_wurfl_module.c:694:93: error: implicit declaration of function ‘wurfl_get_api_version’ [-Werror=implicit-function-declaration] 
     ngx_log_error(NGX_LOG_NOTICE, cf->log, 0, "WURFL: Engine created - API version %s", wurfl_get_api_version() 

:それは、次のようなエラーが発生します。私は多かれ少なかれ、WURFLが提供する汎用ビルドスクリプトを使用しています。

誰でも意見はありますか?

答えて

0

WURFLモジュールにはいくつかのコンポーネントがあり、さまざまなコンポーネントの不一致の可能性があります。 libwurflとwurfl infuzeのバージョン番号が同じであることを確認します(最新バージョンは1.8.4です)。 libwurflのインストール方法の詳細については、documentationの最初のセクションを参照してください。

次は、使用しているwurflのバージョンにnginx.confファイルが適切であることを確認します。 wurflの最後のいくつかのバージョンでは、それがどのように動作するかに大きな変化がありました。 documentationに、wurflの最新バージョンの設定ファイルの例があります。古いバージョンを使用している場合は、リリースに付属のreadmeを確認できます。

これらを修正しても問題が解決しない場合は、私があなたの問題を再現しようとしているインシューズのバージョン番号を教えてください。

+1

libwurfl-1.8.4.2-x86_64.rpm および nginx-mod_wurfl-1.8.4.1.tar これらは昨日引き出されました。 私はこの時点で、ビルドスクリプト/ make installを実行して、ソースからnginxを再構築しようとしているので、nginx.confを処理する必要はないと思います。 はい、どんな助けでも大歓迎です!ありがとう。 – Ruwd

+0

あなたが提供したバージョンでwurfl modをインストールしようとしましたが、インストールはうまくいっています。しかし、古いlibwurflバージョン(1.5.0)が使用されたときにエラーは再現可能でした。これはあなたのシステムに古いlibwurflがあり、1.8.4.2の正しい '/ usr/include/wurfl/wurfl.h 'の前に含まれていると信じています。古いwurfl.hを探し、それを取り除くことを試みてください。 –

+1

これはまさに問題でした! :)ありがとうございました。インストールコンソールの出力に戻って、libwurfl〜1.5が新しい〜1.8 libwurflと衝突する方法についての出力があったので、〜1.8はインストールされませんでした。これもまさに問題でしたので、私は yum -y libwurflを削除します。 そしてインストールスクリプトyum -yは "new libwurfl"をインストールし、それはちょうどきれいに構築されました Yay、thxs D. Gu – Ruwd