Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP unter Win32 kompilieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP unter Win32 kompilieren

    Hallo

    ich hoffe vielleicht das jemand hier von euch hinweise für mich hat,
    ich versuche PHP unter windows selbst zu kompilieren.

    Nein nicht den PHP Source Code , PHP selbst,
    der grund ist ich will an php embed SAPI ran.

    Wenn man nach PHP kompilieren sucht, bekommt man leider nur solche such ergebnisse, wo nach PHP Source Code kompilieren gefragt wird.

    Ich hatte mich an die Erklärung auf PHP: Building from source - Manual gehalten


    Ich bekomme bei versuch zu kompilieren immer:
    Code:
    internal_functions.c
    fatal error C1900: Inkompatibilität zwischen "P1", Version "20080116", und "P2",
     Version "20070207"
    LINK : fatal error LNK1257: Fehler bei Codegenerierung.
    NMAKE : fatal error U1077: ""C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
    \cl.exe"": Rückgabe-Code "0x2"
    Hat jemand vielleicht ein hinweiß, was mit P1 oder P2 gemeint ist oder wie man das Problem beheben kann? Die Suche ergab für mich nichts was geholfen hat. Ich habe Visual Studio Professional 2008 installiert.
    Ich habe nicht mal eine Idee wo ich ansetzen soll...

    nach einem clean hatte ich gerade das bekommen:

    Code:
            rc /fo Release_TS\php5ts.dll.res /d FILE_DESCRIPTION="\"PHP Script Inter
    preter\""  /d FILE_NAME="\"php5ts.dll\"" /d PRODUCT_NAME="\"PHP Script Interpret
    er\""  /IRelease_TS /d MC_INCLUDE="\"Release_TS\wsyslog.rc\""  win32\build\templ
    ate.rc
    Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    fatal error C1900: Inkompatibilität zwischen "P1", Version "20080116", und "P2",
     Version "20070207"
    LINK : fatal error LNK1257: Fehler bei Codegenerierung.
    NMAKE : fatal error U1077: ""C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
    \cl.exe"": Rückgabe-Code "0x2"
    Stop.
    signatur was ist das denn,
    davon hab ich noch nie gehört

  • #2
    Kann nicht genau sagen, ob es Dir hilft, aber kannst ja mal reinschauen.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      versuchs mit Quick 'n' dirty
      DevBlog|3D Online-Shopping|Xatrium

      Kommentar


      • #4
        Zitat von Tiberius Beitrag anzeigen
        versuchs mit Quick 'n' dirty
        scheibar hat die quick 'n' dirty anleitung was gebracht .... kommen zwar massen an warnungen, aber glaub das ist wohl bei php normal

        sieht vielversprechend aus :
        Code:
        Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
        Copyright (C) Microsoft Corporation.  All rights reserved.
        
                lib.exe /nologo /out:Release_TS\php5embed.lib /nologo /version:5.3.3 /li
        bpath:"\"C:\php-sdk\php53dev\vc9\x86\deps\lib\"" Release_TS\sapi\embed\php_embed
        .obj Release_TS\php5ts.lib   Release_TS\php5embed.lib.res
        LINK : warning LNK4044: Nicht erkannte Option /version:5.3.3; wird ignoriert.
        SAPI sapi\embed build complete
        big thx an dich Tiberius

        hat zwar noch an ein paar stellen kleine fehler, scheinbar fehlt etwas,
        aber dennoch klappt das mit dem compelieren schon
        also fehlen wohl nur ein paar libs
        signatur was ist das denn,
        davon hab ich noch nie gehört

        Kommentar


        • #5
          Also mit quick 'n' dirty, klapp das nur wenn ich --disable-all verwende,
          sonst bekomme ich weiterhin, den oben beschriebenen Fehler.

          Jedoch wenn ich
          Code:
          configure --disable-all --enable-cli
          mache kann ich compilieren, aber wenn ich die php.exe starte, kommt



          aber ich habe libiconv-1.12-vc9-x86 im lib ordner.

          Irgendwie komme ich nicht ganz dahinter warum er dann libiconv_open nicht findet in der php5ts.dll nicht findet.

          Die Inkompatibilität zwischen "P1", Version "20080116", und "P2", Version "20070207", scheint wohl aus den weiteren libarys zu kommen.
          signatur was ist das denn,
          davon hab ich noch nie gehört

          Kommentar


          • #6
            warum kann das unter windows nicht auch so einfach wie unter linux sein
            linux: configure -> make -> fertig
            win: ? -> wird nie was
            signatur was ist das denn,
            davon hab ich noch nie gehört

            Kommentar


            • #7
              make wird von einem make-file gesteuert, das auch erstmal erstellt werden will. Automagisch passiert da garnüscht...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von dunst0 Beitrag anzeigen


                aber ich habe libiconv-1.12-vc9-x86 im lib ordner.
                PHP: internals:windows:stepbystepbuild [PHP Wiki]
                Step 16
                (warning: some extensions need libraries, header files and helper apps, see libs, fetch the version you need and extra the archive in the deps directory, ie: c:\php-sdk\php53\vc9\x86\deps)
                Liegts vielleicht daran?

                Die Suche nach einer DLL gestaltet sich etwas umfangreicher, siehe
                Dynamic-Link Library Search Order (Windows)
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Zitat von lstegelitz Beitrag anzeigen
                  PHP: internals:windows:stepbystepbuild [PHP Wiki]
                  Step 16


                  Liegts vielleicht daran?

                  Die Suche nach einer DLL gestaltet sich etwas umfangreicher, siehe
                  Dynamic-Link Library Search Order (Windows)
                  also die iconv lib findet er bei aufruf von configure
                  im deps ordner, darum wundert mich es ja auch so

                  die aussage ist ja das er in php5ts.dll nicht den einsprungpunkt findet,
                  das wirkt irgendwie so als ob er die nicht einkompiliert, aber warum
                  signatur was ist das denn,
                  davon hab ich noch nie gehört

                  Kommentar


                  • #10
                    Es gibt mehrere Arten, Module zu linken.

                    Bei statischen linking gibt es eine .lib Datei, die sowohl die Funktionsdeklarationen als auch die Implementation enthält. Der Linker fügt den gesamten Code der lib in die EXE ein. Es wird nichts nachgeladen.

                    Dann gibt es die Variante über .lib und .dll - in der Lib liegen diesesmal aber nur die Deklarationen (stub), der Code steckt in der DLL und wird dynamisch (zur Laufzeit) nachgeladen.

                    Liegt die DLL im gleichen Verzeichnis wie die EXE?
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Die Inkompatibilität zwischen "P1", Version "20080116" und "P2" Version "20070207" kommt aus einigen vc9 libs.

                      Hab mich letzte Nacht dran gesetzt um php komplett zu kompilieren, samt Extensions und nicht nur den Quick n dirty way. Somit bekam ich die gleiche Inkompatibilitäts-Meldung.

                      Bis auf die zlib werden nun alle *.dll Extensions "gemacht": zieh dir die vc8 libs und entpacke alle wie gewohnt nach deps. Dann bügelst du folgende vc9 libs drüber

                      libmpir-1.2.1
                      alle drei ICU
                      libcurl
                      gettext
                      libpq
                      libssh2
                      mpir 112
                      libpng 1.2.37
                      openssl-0.9.8k

                      Code:
                      nmake clean
                      configure --enable-cli --enable-snapshot-build --disable-cgi
                      nmake snap
                      mal schauen obs auch bei dir läuft
                      DevBlog|3D Online-Shopping|Xatrium

                      Kommentar


                      • #12
                        ahh

                        der erste build der nicht einfach nur fehlgeschlagen ist
                        beim nächten versuch lenk ich noch mal die ausgaben des builds in
                        ne datei um, da waren ein paar errors die mich interessieren
                        scheinbar ist irgendwas noch nicht vorhanden

                        thx Tiberius, das wars gewesen
                        damit konnte man die Inkompatibilität beseitigen.
                        signatur was ist das denn,
                        davon hab ich noch nie gehört

                        Kommentar


                        • #13
                          zu früh gefreut, compilieren lässt es sich
                          jedoch ist die cli nicht lauffähig
                          signatur was ist das denn,
                          davon hab ich noch nie gehört

                          Kommentar


                          • #14
                            was passiert bzw. was passiert nicht?
                            DevBlog|3D Online-Shopping|Xatrium

                            Kommentar


                            • #15
                              Zitat von Tiberius Beitrag anzeigen
                              was passiert bzw. was passiert nicht?
                              die cli bleibt einfach hängen

                              ich habe leider studiumsbedingt mehrer compiler und IDEs
                              daher werde ich am wochenende mal eine VM mit einem sauberen winXP
                              aufsetzen und das kompilieren noch mal versuchen.

                              eigentlich sollte das nicht der grund sein, aber ich will es ausschließen.

                              @Tiberius: Welches Windows nutzt du?
                              signatur was ist das denn,
                              davon hab ich noch nie gehört

                              Kommentar

                              Lädt...
                              X