Windows プラットフォームでの nginx のコンパイルに関連する問題の処理
リリース: 2016-08-08 09:26:57
この記事では、Windows で nginx をコンパイルする方法について説明します。この記事を参照してください。
Visual C を使用した Win32 プラットフォーム上の nginx については詳細に説明されていますが、実際の操作プロセスには常に多くの詳細があり、それをここに記録します。
目次[隠す]
-
1よくある質問
-
1.1 指定されたバージョンを取得します
-
1.2 “stdint.h”:
そのようなファイルやディレクトリはありません
-
1.3 “openssl/ssl.h”:
そのようなファイルまたはディレクトリはありません
-
1.4 ファイルを開けません
「objs/lib/openssl-1.0.1e/lib/ssleay32.lib」
-
1.5エラー
C2220: 警告はエラーとして扱われます - 「オブジェクト」ファイルが生成されません
-
1.6 致命的
エラー C1010: プリコンパイルされたヘッダーの検索中に予期しないファイルの終わりが発生しました。ソースに「#include "ngx_config.h"」を追加するのを忘れていませんか?私が使用している VS のバージョンは VS2008 ですが、次の問題が発生しました。
指定されたバージョンを取得します
-
たとえば、nignx のバージョン 1.20 をダウンロードしたい場合は、すぐにここで 1.20 のバージョンを探します。 f582d662cc408eb7a132c21f4b298b71d0701abb であることを確認します。次の実行シーケンスで指定されたバージョンを取得できます: hg clone http://hg.nginx.org/nginx
cd nginx
hg co f582d662cc408eb7a132c21f4b298b71d0701abb
"stdint.h": そのようなファイルまたはディレクトリはありません
この問題は簡単に解決できます。欠落しているヘッダーをダウンロードするだけです。ファイル。 https://code.google.com/p/msinttypes/
解凍後、ヘッダー ファイル ディレクトリを C:Program FilesMicrosoft Visual Studio 9.0VCinclude (または同様のディレクトリ) に配置します。
"openssl/ssl.h": No such file or directory
nmake -f objs/Makefile を実行すると、このような問題が発生する場合があります。このようなパス (objs/lib/openssl-1.0.1e/openssl/include) が表示されますが、実際には存在しません。解決策は、openssl-1.0.1e/openssl を openssl-1.0.1e に変更することです。 vi nginx/objs/Makefile
または、生成された Makefile の構成を直接変更します
vi auto/lib/openssl/conf
vi auto/lib/openssl/make
ファイル「objs/lib/openssl-1.0.1e/lib/ssleay32.lib」を開けません
わかりませんnginx プロジェクトが openssl ライブラリを生成しないのはなぜですか。openssl を個別にコンパイルして生成することで、この問題を解決しました。手順は次のとおりです: perlをインストールします(私はActivePerlを使用します)
opensslをCドライブに解凍し、cd C:openssl-1.0.1eperlを実行します VC-WIN32を構成します
cmdを実行し、*"Cを変更します:Program FilesMicrosoft Visual Studio 9.0VCvcvarsall.BAT」* cmd にプルして実行します
cmd で msdo_ms を実行しますcmd で nmake -f msntdll.mak を実行します
それでは、手動で生成した libeay32.lib と ssleay32.lib を配置しますnginx /objs/lib/openssl-1.0.1e ディレクトリにコピーします。問題が解決しました。
- エラー C2220: 警告はエラーとして扱われます – 「オブジェクト」ファイルは生成されません
-
- CFLAGS の -WX フィールドを削除し、Makefile を再生成して再コンパイルします
vi auto/cc/msvc
#CFLAGS="$CFLAGS -WX"
- 致命的なエラー C101 0 : プリコンパイル済みヘッダーの検索中に予期しないファイルの終わりが見つかりました。 「#include」を追加するのを忘れていませんか?
"ngx_config.h""?
Windows モジュールの開発中に問題が発生しました。各ソース ファイルのコードの最初の行を #include "ngx_config.h"* 追加する必要があります。これを実行したくない場合は、 、パラメーターをコンパイルするだけです* - Yungx_config.h を削除します。コード nmake -f objs/Makefile のこの行を実行するときは、毎回完全にコンパイルする必要があります。このように、objs/Makefile に次の行があります:
objs/lib/openssl-1.0.1e/include/openssl/ssl.h: objs/Makefile
ssh.h このファイルは objs/Makefile* に依存しますが、前者の変更時刻が後者の変更時刻よりも常に早い場合。 , 以下のコマンドは、*objs/Makefile の文字列を削除するだけで常に実行されます
操作プロセスの概要
- “C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat”
- “C:\MinGW\msys\1.0\msys.bat”
- cd /c/nginx
- 生成makefile
auto/configure --with-cc=cl --builddir=objs --prefix= \
--conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \
--http-log-path=logs/access.log --error-log-path=logs/error.log \
--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.32 \
--with-zlib=objs/lib/zlib-1.2.7 --with-openssl=objs/lib/openssl-1.0.1e \
--with-select_module --with-http_ssl_module --with-ipv6 \
--add-module=objs/lib/naxsi-core-0.48/naxsi_src
- nmake -f objs/Makefile
- 启动nginx
start nginx.exe -p "C:\nginx"
nginx.exe -p "C:\nginx" -s reload
nginx.exe -p "C:\nginx" -s quit
参考资料:
Windows下OpenSSL安装配置
本文由吴遥编写,转载请注明出处。
文章链接:http://www.wuyao721.com/nginx-building-windows.html
以上就介绍了windows平台下编译nginx相关问题处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31