Windows
Verwenden Sie das Tool [php-sdk-binary-tools], um die DLL-Erweiterung unter Windows zu kompilieren.
php-sdk-binary-tools:GitHub – microsoft/php-sdk-binary-tools: Toolkit zum Erstellen von PHP unter Windows
Kompilierungsprozess:php mb-Erweiterung für Windows 7, php7.4 benutzerdefinierte Erweiterung schreiben für Windows – CSDN-Blog
Vorsichtsmaßnahmen:
config.w32-Konfiguration [Kompiliert bei mehreren CPPs]:
ARG_ENABLE('hello', 'hello support', 'yes');
if (PHP_HELLO != 'no') {
AC_DEFINE('HAVE_HELLO', 1, 'hello support enabled');
}
EXTENSION('hello', 'hello.cpp', null, '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1');
ADD_SOURCES(configure_module_dirname, "AES.CPP base64.cpp", "hello");
PHP_INSTALL_HEADERS("ext/hello/", "AES.h base64.h");
Wenn die Bibliothek beteiligt ist, fügen Sie die Header-Datei und die Bibliothek in den Pfad ein. Beim Test wurde festgestellt, dass die statische Bibliothek nicht funktioniert.
C:\Users\dell\Desktop\php\phpdev\vc15\x64\deps
Suchen Sie dann das Makefile, normalerweise im PHP-Quellcodeverzeichnis, fügen Sie den Namen Ihrer lib-Datei zu LIBS in der Datei hinzu und kompilieren Sie dann.
Löwe
config.m4-Konfiguration [Kompiliert im Fall mehrerer CPP]:
dnl In case of no dependencies
PHP_REQUIRE_CXX()
PHP_SUBST(HELLO_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, HELLO_SHARED_LIBADD)
AC_DEFINE(HAVE_HELLO, 1, [ Have hello support ])
PHP_NEW_EXTENSION(hello, hello.cpp AES.cpp base64.cpp, $ext_shared)
PHP_INSTALL_HEADERS([ext/hello], [AES.h base64.h])
Wenn es um die lib-Bibliothek geht, können Sie meinen anderen Artikel lesen:
Während der Kompilierung können Fehler auftreten, die Probleme mit dem C++11-Standard betreffen. Ändern Sie wie folgt:
Suchen Sie das Makefile, normalerweise im erweiterten Quellcodeverzeichnis des PHP-Quellcodes:
Suchen Sie die CXX-Variable und fügen Sie danach -std=c++11 hinzu, wie zum Beispiel:
CXX = g++ -std=c++11