Heim  >  Artikel  >  PHP-Framework  >  Lösung für das Problem beim Kompilieren und Installieren von Swoole auf dem Mac, dass die .h-Datei nicht existiert

Lösung für das Problem beim Kompilieren und Installieren von Swoole auf dem Mac, dass die .h-Datei nicht existiert

谨言慎行
谨言慎行Original
2020-11-05 14:27:312335Durchsuche

Vorwort

1. Eigentlich hätte ich wirklich nicht erwartet, dass der Installationsprozess so sein würde Emmm... Wie man es beschreibt, es ist eigentlich nicht schwierig, wenn man sagt, dass es schwierig ist, aber es ist ziemlich ekelhaft und von Natur aus des Mac Verschiedene Probleme, die durch die eigene Umgebung des Computers verursacht werden und einige Dateien nicht automatisch laden.

2. Außerdem gibt es wirklich nur sehr wenige Informationen zu dieser Art von Frage, also notieren Sie sie.


Native Umgebung


und Xcode ist nicht installiert.
Die lokale Version wird mit PHP-Version 7.3 geliefert.
Das Konfigurationstool für die lokale Umgebung verwendet MxSrvs, eine Mac-Version der PHP-Entwicklungsumgebung. Offizielle Website des Tools: http://www.xsrvs.com/ Obwohl das Tool klein ist, verfügt es über alle wichtigen Funktionen und ist für die Entwicklung völlig ausreichend.

Hauptprobleme

1. Die Header-Datei von PHP kann nicht gefunden werden

2. Die Header-Datei von Openssl kann nicht gefunden werden (die Fehlermeldung ähnelt der von PHP)

Vorbereitungsarbeiten

Offizielle Website-Anforderungen

Noch etwas ist hier zu sagen: Obwohl der Beamte nicht angibt, wie viele Versionen oder höher von Autoconf erforderlich sind, sind beim Kompilieren und Installieren 2.68 und höher erforderlich.

Laden Sie das Quellcodepaket von Git herunterDownload-Adresse, was ich heruntergeladen habe, ist

Installationsprozess

Da es lokal ist, lege ich das heruntergeladene Paket direkt in das Konsolenverzeichnis, ohne etwas auf die CD zu schreiben Verzeichnis oder etwas Ähnliches und führen Sie dann den folgenden Code aus. Da ich ihn im Tool in die PHP-Version kompilieren möchte, verwende ich den vom Tool bereitgestellten. phpzie

/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2  \make && sudo make install

Es ​​überrascht nicht, dass ich auf Problem 1 gestoßen bin. Weder Baidu noch Bing haben etwas im Zusammenhang mit diesem Problem gefunden. Dann habe ich einige Gruppenfreunde gefragt, und einige Leute sagten, es liege daran, dass die Version zu hoch sei und dass Swoole am besten geeignet sei. Die Version ist Version 7.2.

Am Ende hat mich die Antwort, die auf den Kern der Frage hinweist, inspiriert. Die allgemeine Antwort bedeutet, dass ab macOS 10.10 und späteren Versionen die mit dem Mac gelieferte PHP-Version einige Ordner gelöscht hat, das heißt: das mitgelieferte PHP

Für die Kompilierung und Installation sind keine Dateien erforderlich.很 Da wir den Grund kennen, ist es tatsächlich sehr gelöst, dass wir es nicht mit einer eigenen Umgebung entwickeln. Daher müssen wir nur überlegen, wie wir es dynamisch auf die Systemumgebungsvariablen anwenden können. Da ich den Pfad der Systemumgebungsvariablen bereits zuvor festgelegt habe und einen kleinen Eindruck davon habe, habe ich herausgefunden, wie die Umgebungsvariable festgelegt wird. Tatsächlich legen Sie die Umgebungsvariablen über .bash_profile fest


Nach dem Neustart müssen Sie jedoch jedes Mal

source ~/.bash_profile
in die Befehlszeile eingeben, damit es wirksam wird, was für uns problematischer ist Laden Sie die .zshrc-Datei automatisch. Mechanismus zum Hinzufügen von
source ~/.bash_profile

am Ende der Datei, sodass nicht jedes Mal eine manuelle Eingabe erforderlich ist. Um den Zweck des dynamischen Festlegens von Umgebungsvariablen zu erreichen.

An diesem Punkt ist das erste Problem gelöst.
Die zweite Installation wurde fortgesetzt, und dann trat das zweite Problem auf. Die Lösung dieses Problems ist relativ kompliziert.
Tatsächlich sind die aufgetretenen Probleme im Wesentlichen die gleichen. Sie sind alle darauf zurückzuführen, dass die mit dem Mac gelieferte Software nicht über diese .h-Header-Datei verfügt. Das erste Problem liegt an den an das Tool gebundenen Variablen sich ändernde Umgebungsvariablen implementiert, ist eine clevere Möglichkeit, damit umzugehen. Logischerweise wird diese Erweiterung von OpenSSL an vielen Stellen verwendet, sodass sie in der gesamten Umgebung Ihres eigenen Computers installiert wird.

Bevor Sie openssl installieren, müssen Sie diesen Schritt nicht überspringen. Es scheint, dass viele Umgebungsvariablen auf dem Mac mit dem Xcode-Dateiverzeichnis verknüpft sind, aber wir können es nicht ignorieren wird es erneut installieren. Geben Sie

brew install openssl


in die Befehlszeile ein. Wenn festgestellt wird, dass Ihres bereits vorhanden ist, werden Sie aufgefordert, es erneut zu installieren und auszuführen
brew reinstall openssl@1.1


其中有一句,就是让把这个添加到

If you need to have openssl@1.1 first in your PATH run:  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

把这个也添加之前修改过的 .zshrc 文件即可。
接下来就是重头戏了。说白了就是简单的粘贴复制,把 openssl 的文件夹,路径为

/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl

复制到

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/

目录下即可
至此,第二个问题解决。

然后再运行编译 Swoole ,等待编译完成就可以了

成果


打完收工!

Das obige ist der detaillierte Inhalt vonLösung für das Problem beim Kompilieren und Installieren von Swoole auf dem Mac, dass die .h-Datei nicht existiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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