Behandeln von Problemen im Zusammenhang mit der Kompilierung von Nginx unter der Windows-Plattform
Freigeben: 2016-08-08 09:26:57
Original
1656 Leute haben es durchsucht
In diesem Artikel wird beschrieben, wie Sie Nginx unter Windows kompilieren. Weitere Informationen finden Sie in diesem Artikel
Nginx auf der Win32-Plattform mit Visual C wurde ausführlich erklärt, es gibt jedoch immer viele Details im tatsächlichen Betriebsprozess, die hier aufgezeichnet werden.
Inhalt [ausblenden]
-
1 FAQ
-
1.1 Holen Sie sich die angegebene Version
-
1.2 „stdint.h“:
Keine solche Datei oder kein solches Verzeichnis
-
1.3 „openssl/ssl.h“:
Keine solche Datei oder kein solches Verzeichnis
-
1.4 Datei kann nicht geöffnet werden
„objs/lib/openssl-1.0.1e/lib/ssleay32.lib“
-
1.5 Fehler
C2220: Warnung wird als Fehler behandelt – „Objekt“-Datei wurde nicht generiert
-
1.6 schwerwiegend
Fehler C1010: Bei der Suche nach vorkompilierten Headern wurde ein unerwartetes Ende der Datei festgestellt. Haben Sie vergessen, „#include „ngx_config.h““ zur Quelle hinzuzufügen?
-
1.7 Jedes Mal vollständig kompilieren
- 2Zusammenfassung des Betriebsprozesses
Häufig gestellte Fragen
Die VS-Version, die ich verwende, ist VS2008, und ich bin darauf gestoßen die folgende Frage.
Holen Sie sich die angegebene Version
Manchmal benötigen wir nicht die neueste Version. Ich möchte beispielsweise die Version 1.20 herunterladen Zuerst habe ich hier nach der Versionsnummer 1.20 gesucht und bald festgestellt, dass sie f582d662cc408eb7a132c21f4b298b71d0701abb ist. Die folgende Ausführungssequenz kann die angegebene Version erhalten:
hg clone http://hg.nginx.org/nginx
cd nginx
hg co f582d662cc408eb7a132c21f4b298b71d0701abb
"stdint.h ”: Keine solche Datei oder kein solches Verzeichnis
Dieses Problem ist leicht zu lösen, laden Sie einfach die fehlende Header-Datei herunter. https://code.google.com/p/msinttypes/
Nach der Dekomprimierung platzieren Sie das Header-Dateiverzeichnis unter C:ProgrammeMicrosoft Visual Studio 9.0VCinclude (oder einem ähnlichen Verzeichnis).
"openssl/ssl.h": Keine solche Datei oder kein solches Verzeichnis
Führen Sie nmake -f objs/Makefile aus , kann dieses Problem auftreten. Wir sehen einen solchen Pfad (objs/lib/openssl-1.0.1e/openssl/include), aber er existiert tatsächlich nicht. Die Lösung besteht darin, „openssl-1.0.1e/openssl“ in „openssl-1.0.1e“ zu ändern.
vi nginx/objs/Makefile
Oder ändern Sie direkt die Konfiguration des generierten Makefile
vi auto/lib/openssl/conf
vi auto/lib/openssl/make
Datei „objs/lib/openssl- kann nicht geöffnet werden“ 1.0.1e /lib/ssleay32.lib“
Ich weiß nicht, warum das Nginx-Projekt die OpenSSL-Bibliothek nicht generiert. Ich habe dieses Problem durch separates Kompilieren und Generieren von OpenSSL gelöst. Die Schritte sind wie folgt:
- Perl installieren (ich verwende ActivePerl)
- OpenSSL nach Laufwerk C extrahieren, cd C:openssl-1.0.1e
- Perl ausführen Konfigurieren Sie VC-WIN32
- Führen Sie cmd aus, ziehen Sie *“C:ProgrammeMicrosoft Visual Studio 9.0VCvcvarsall.BAT“* in cmd und führen Sie
- Führen Sie msdo_ms in cmd aus
- Führen Sie nmake aus in cmd -f msntdll.mak
Okay, legen Sie die manuell generierten libeay32.lib und ssleay32.lib in das Verzeichnis nginx/objs/lib/openssl-1.0.1e. Problem gelöst.
Fehler C2220: Warnung als Fehler behandelt – „Objekt“-Datei wurde nicht generiert
Werden CFLAGS -WX entfernt? Feld, dann das Makefile neu generieren und neu kompilieren
vi auto/cc/msvc
#CFLAGS="$CFLAGS -WX"
Schwerwiegender Fehler C1010: Unerwartetes Ende der Datei beim Suchen nach vorkompilierten Headern festgestellt. Haben Sie vergessen, „#include“ hinzuzufügen?
"ngx_config.h""?
Bei der Entwicklung von Windows-Modulen treten Probleme auf. Die erste Codezeile in jeder Quelldatei muss hinzugefügt werden. #include "ngx_config.h"*, wenn Sie dies nicht tun Ich möchte dazu die Kompilierungsparameter *-Yungx_config.h
Kompilieren
vollständig entfernen Wenn Sie diese Codezeile nmake -f objs/Makefile ausführen, muss sie jedes Mal vollständig kompiliert werden, was Zeitverschwendung ist. Der Grund dafür ist folgender.
objs/lib/openssl-1.0.1e/include/openssl/ssl.h: objs/Makefile
ssh. Die .h-Datei hängt von objs/Makefile* ab, aber wenn die Änderungszeit der ersteren immer früher ist als die der letzteren, wird der folgende Befehl immer ausgeführt string *objs/Makefile 🎜>
Zusammenfassung des Vorgangsprozesses
- “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教程有兴趣的朋友有所帮助。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
-
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