Wie kompiliere ich eine PHP-Erweiterung mit Microsoft Visual C ++ 2008?

8

Ich habe eine PHP Hello World Erweiterungs-DLL mit Microsoft Visual C ++ 2008 erstellt. Ich habe das Recht php.ini (Ich weiß, weil wenn ich die Erweiterung gd2 aktiviere und deaktiviere, ist ein Effekt) , aber wenn ich die Erweiterung lade, erscheint sie nicht unter den Zusatzmodulen in phpinfo() .

Wenn ich versuche, die Funktion zu testen (eine einfache double() -Funktion), funktioniert sie offensichtlich nicht. Ich habe dieses Tutorial verwendet.

Wenn jemand seine dll erstellen könnte, die dabei erstellt wird (um zu sehen, ob meine versaut ist oder ob es mein Server ist), dann würde ich es gerne testen.

Systemspezifikationen

Betriebssystem: Windows (Vista)
Server: WAMP
PHP: 5.3.5 (Xampp und IIS sind ebenfalls installiert)

Wenn Sie testen möchten, ob es für Sie funktioniert, hier herunterladen .

Wenn ich den Befehl php --ini starte, bekomme ich diesen Fehler:

%Vor%

Bedeutet das, dass ich Version 9 verwenden muss, um PHP zu kompilieren?

    
Mark Lalor 05.02.2011, 15:34
quelle

3 Antworten

1

Lösung von den Kommentaren ...

- Ich fand die Lösung forums.zend.com/viewtopic.php?f=55& t = 2045

- Mögliches Duplikat: Frage: stackoverflow.com/questions/3641751/

Ich bekomme diese Warnungen

%Vor%

Ich denke, es hat mit der Tatsache zu tun, dass meins eigentlich mit VC9 kompiliert und auf den anderen nichts hat. (Sie sind Warnungen, aber ich denke, es ist, warum es nicht funktioniert)

Ok, habe nicht mehr getan, als es einfach auszuprobieren, aber als ich die Erweiterung ausgeführt habe, hat es funktioniert. Ich habe immer noch Fehler von PHP - INI, aber es lief und WORKED.

    
Mark Lalor 08.02.2011, 00:05
quelle
2

VC9 und VC6 Builds sind nicht kompatibel. Sie müssen entweder Ihre DLL mit VC6 kompilieren oder PHP-Binärdateien mit VC9 von ihrer Download-Seite kompilieren.

Wenn Sie Apache und mod_php verwenden, benötigen Sie auch einen VC9-Build von Apache, um den VC9 PHP zu laden, Sie können diese von apachehaus.com .

    
Flavio 07.02.2011 15:39
quelle
0

Ich habe eine benutzerdefinierte PHP-Erweiterung kompiliert und erfolgreich ausgeführt.

Können Sie Folgendes versuchen:

  • Erhalte den vc9-Build von php-5.3.5
  • nicht # PHP_COMPILER_ID in der zend_build.h Header-Datei definieren (IMHO, das ist sowieso eine schlechte Idee)
  • Sie haben wahrscheinlich PHP_COMPILER_ID auch in config.w32.h definiert; entferne es
  • in Ihren Projekteinstellungen (C / C ++ - Preprocessor) definieren: PHP_COMPILER_ID = \ "VC9 \" (Wenn Sie den vc6-Build von PHP benötigen, dann würde ich versuchen, PHP_COMPILER_ID = \ "VC6 \" zu definieren; ich weiß nicht, ob das ohne Probleme funktioniert, aber ich habe die Konstellation [php-5.2.x vc6, custom php Erweiterung kompiliert mit vc9] ohne Probleme, immer)
klaus triendl 15.02.2011 22:43
quelle