Entwickler-Ecke

Alle Sprachen - Alle Plattformen - PHP kompilieren geht nicht...


tomycat - Sa 22.05.21 18:39
Titel: PHP kompilieren geht nicht...
hallo,
ich etwas proggen, dazu will ich die sdk von php einsetzen.
Die Anleitung...
https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2

Visual Studio 19 ist installiert, die sdk habe ich über git geholt. den neusten php Quellcode per Firefox.

Command
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
C:\php-sdk>phpsdk-vs16-x64.bat
[vcvarsall.bat] Environment initialized for: 'x64'
PHP SDK 2.2.1-dev

OS architecture:    64-bit
Build architecture: 64-bit
Visual C++:         14.28.29914.0
PHP-SDK path:       C:\php-sdk

C:\php-sdk
$ phpsdk_buildtree phpdev
C:\php-sdk\phpdev\vs16\x64
$ cd php-7.4.19-src

C:\php-sdk\phpdev\vs16\x64\php-7.4.19-src
$ phpsdk_deps -u

Fatal error: Uncaught SDK\Exception: The passed CRT 'vs16' doesn't match any available for branch '7.4' in C:\php-sdk\lib\php\libsdk\SDK\Config.php:287
Stack trace:
#0 C:\php-sdk\bin\phpsdk_deps.php(134): SDK\Config::getCurrentBranchData()
#1 {main}
  thrown in C:\php-sdk\lib\php\libsdk\SDK\Config.php on line 287

C:\php-sdk\phpdev\vs16\x64\php-7.4.19-src
$

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


jaenicke - Sa 22.05.21 22:53

user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
ich etwas proggen, dazu will ich die sdk von php einsetzen.
Was hast du denn vor?
Um etwas in PHP zu programmieren musst du ja PHP nicht gleich selbst kompilieren.

Das passt nicht zusammen...
user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
Visual Studio 19 ist installiert

[..]

The passed CRT 'vs16' doesn't match any available for branch '7.4'
Meinst du Visual Studio 2019?
Das ist laut der von dir verlinkten Seite nur für den Branch master geeignet und nicht für den Branch 7.4, den du offenbar verwendest.


tomycat - So 23.05.21 18:22

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
ich etwas proggen, dazu will ich die sdk von php einsetzen.
Was hast du denn vor?
Um etwas in PHP zu programmieren musst du ja PHP nicht gleich selbst kompilieren.

ja das stimmt. Nein, ich will was in C Programmieren und testen. :-)
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
ich etwas proggen, dazu will ich die sdk von php einsetzen.

Das passt nicht zusammen...
user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
Visual Studio 19 ist installiert

[..]

The passed CRT 'vs16' doesn't match any available for branch '7.4'
Meinst du Visual Studio 2019?

hmmmm, ich habe definitiv VS 19 installiert.
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
ich etwas proggen, dazu will ich die sdk von php einsetzen.

Das ist laut der von dir verlinkten Seite nur für den Branch master geeignet und nicht für den Branch 7.4, den du offenbar verwendest.

Kannst du mir das mit dem Branch in 2 bis 3 Sätze Erklären ?!

Ich habe habe jetzt den Quellcode von php mit Git geholt und die Schritte wiederholt (inkl --enable-debug), lief alles gut durch. :-)

Laut Readme sdk soll ich ...

Quelltext
1:
nmake test TESTS=ext/myext/tests/sometest.phpt DEBUGGER=1                    

.. ausführen.

Es öffnet sich VS, so bald ich debug anklicke kommt: Datei nicht gefunden. -> ext/myext/tests/sometest.phpt
Wieso / und kein \ ?!

Diese Datei ist 100% verfügbar,mein hello Welt, wird aber auch nicht gefunden ?!

Quelltext
1:
2:
$ nmake test TESTS=c:/php-sdk/test.php DEBUGGER=1
$ nmake test TESTS=c:\php-sdk\test.php DEBUGGER=1

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


jaenicke - Mo 24.05.21 00:10

user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
ja das stimmt. Nein, ich will was in C Programmieren und testen. :-)
Da bringen dir PHP oder das PHP SDK aber null Komma null etwas...
Um das zu verwenden, musst du auch in PHP programmieren. Du kannst mit C++ Änderungen an PHP selbst vornehmen, aber das dürfte aktuell, ohne dir zu nahe treten zu wollen, deutlich außerhalb deiner Fähigkeiten liegen.

user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
hmmmm, ich habe definitiv VS 19 installiert.
Das gibt es aber nicht, siehe:
https://visualstudio.microsoft.com/de/vs/
Die aktuelle Version ist Visual Studio 2019.

user profile icontomycat hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du mir das mit dem Branch in 2 bis 3 Sätze Erklären ?!
Branches sind Entwicklungszweige im Quelltext. In Branch 7.4 liegt der Quelltext für PHP 7.4, im Branch master die folgende (in Entwicklung befindliche) Version.
Du musst daher zum entsprechenden Branch wechseln um die jeweilige Version zu kompilieren. Mit Visual Studio 2019 kannst laut Doku nur den Branch master kompilieren.


Palladin007 - Mo 24.05.21 01:06

Zitat:
Das gibt es aber nicht, siehe:
visualstudio.microsoft.com/de/vs/
Die aktuelle Version ist Visual Studio 2019.

Ich glaube das ist ein Missverständnis.
"Visual Studio 2019" ist der Marketing-Name, "16" ist die eigentliche Versionsnummer.
Ergo: Visual Studio 2019 = VS 16


tomycat - Mo 24.05.21 13:01

ok, vielleicht habe ich mich falsch ausgedrückt.
Ich habe direkt vom Microsoft das Visual Studio 19 von 1 oder 2 Wochen heruntergeladen.
Wenn ich es richtig verstanden habe, ist Visual Studio 19 = VS 19 = Version Nummer 16. Richtig?

Auf jeden Fall habe ich mit Git die Neuste SDK heruntergeladen und den neusten Quellcode für php8.

Meine Frage ist jetzt warum er die sometest.phpt nicht findet, obwohl ich sie hinkopiert habe.

Quelltext
1:
nmake test TESTS=ext/myext/tests/sometest.phpt DEBUGGER=1                    

@jaenicke

Du hast mich richtig verstanden. Ich weis, dass es ein sehr sehr langer harter Weg ist.

Ein Teil wird in php programmiert und ein anderer Teil in C.

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Th69 - Mo 24.05.21 13:49

Nur warum möchtest du PHP selber kompilieren?
Benutze doch eines der Windows-Installer von PHP For Windows: Download [https://windows.php.net/download/] ("Zip"), s.a. How to install PHP 8 on Windows 10 [https://developerf1.com/how-to/install-php-8-on-windows].