Hallo, beim compilieren von PHP bekomme ich bei make meherere Fehlermeldungen in der Art: internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant internal_functions.c:35: (near initialization for `php_builtin_extensions[0]') internal_functions.c:36: `phpext_wddx_ptr' undeclared here (not in a function) internal_functions.c:36: initializer element is not constant internal_functions.c:36: (near initialization for `php_builtin_extensions[1]') internal_functions.c:37: `phpext_standard_ptr' undeclared here (not in a function) internal_functions.c:37: initializer element is not constant internal_functions.c:37: (near initialization for `php_builtin_extensions[2]') internal_functions.c:38: `phpext_sockets_ptr' undeclared here (not in a function) internal_functions.c:38: initializer element is not constant was könnte hier das Problem sein? Gruss, Mario
Hi! Welche SuSE setzt Du ein? Welches Version hat der gcc? Vielleicht ist der gcc nicht kompatibel. Ich hatte letztens sowas mit nem Treiber. Gruß, Michel At 23:48 22.01.2003 +0100, you wrote:
Hallo,
beim compilieren von PHP bekomme ich bei make meherere Fehlermeldungen in der Art:
internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant
...
Hallo Mario,
beim compilieren von PHP bekomme ich bei make meherere Fehlermeldungen in der Art:
internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant internal_functions.c:35: (near initialization for `php_builtin_extensions[0]') internal_functions.c:36: `phpext_wddx_ptr' undeclared here (not in a function)
zeige doch einmal die letzten Zeile der Fehlermeldung. Sieht eigentlich aus wie ein Linkerproblem. Daher vermute ich das die letzte Zeile etwas wie "ld returned 1 exit status" enthält. Wenn es das ist, wäre es ganz hilfreich, die configure-Anweisung zu sehen. Ach ja, um welche PHP-Version handelt es sich? Gruß André
André Groß schrieb:
Hallo Mario,
beim compilieren von PHP bekomme ich bei make meherere Fehlermeldungen in der Art:
internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant internal_functions.c:35: (near initialization for `php_builtin_extensions[0]') internal_functions.c:36: `phpext_wddx_ptr' undeclared here (not in a function)
zeige doch einmal die letzten Zeile der Fehlermeldung. Sieht eigentlich aus wie ein Linkerproblem. Daher vermute ich das die letzte Zeile etwas wie "ld returned 1 exit status" enthält. Wenn es das ist, wäre es ganz hilfreich, die configure-Anweisung zu sehen. Ach ja, um welche PHP-Version handelt es sich?
Also es handelte sich um PHP4.2.3 Ich habe jetzt mal PHP 4.3.0 genommen, und da kommen die obigen meldungen nicht mehr. Aber make bricht jetzt mit folgender Fehlermeldung ab. ext/mysql/libmysql/my_tempnam.lo: In function `my_tempnam': /opt/php-4.3.0/ext/mysql/libmysql/my_tempnam.c:103: the use of `tempnam' is dangerous, better use `mkstemp' Wo könnte jetzt das Problem liegen? Gruss, Mario
Hallo Mario,
Ich habe jetzt mal PHP 4.3.0 genommen, und da kommen die obigen meldungen nicht mehr. Aber make bricht jetzt mit folgender Fehlermeldung ab.
ext/mysql/libmysql/my_tempnam.lo: In function `my_tempnam': /opt/php-4.3.0/ext/mysql/libmysql/my_tempnam.c:103: the use of `tempnam' is dangerous, better use `mkstemp'
Welche MySQL-Version hast Du installiert? Hast Du schon einmal versucht PHP mit --with-mysql=/pfad/zu/mysql zu konfigurieren und dann neu zu kompilieren? Gruß André P.S.: Nicht vergessen die config.cache vor einem erneuten Versuch zu löschen ;-)
André Groß schrieb:
Hallo Mario,
Ich habe jetzt mal PHP 4.3.0 genommen, und da kommen die obigen meldungen nicht mehr. Aber make bricht jetzt mit folgender Fehlermeldung ab.
ext/mysql/libmysql/my_tempnam.lo: In function `my_tempnam': /opt/php-4.3.0/ext/mysql/libmysql/my_tempnam.c:103: the use of `tempnam' is dangerous, better use `mkstemp'
Welche MySQL-Version hast Du installiert? Hast Du schon einmal versucht PHP mit --with-mysql=/pfad/zu/mysql zu konfigurieren und dann neu zu kompilieren?
dachte --with-mysql reicht, aber --with-mysql=/usr brachte dann erst den gewünschten Erfolg. Gruss, Mario
André Groß
Aber make bricht jetzt mit folgender Fehlermeldung ab.
ext/mysql/libmysql/my_tempnam.lo: In function `my_tempnam': /opt/php-4.3.0/ext/mysql/libmysql/my_tempnam.c:103: the use of `tempnam' is dangerous, better use `mkstemp'
Das kann eigentlich nicht sein, denn das ist nur eine Warnung, die aus der glibc kommt aber kein Fehler! Bitte poste mit mehr Kontext, so ca. 2-3 Zeilen vorher und nachher, damit man mal sieht, was ld bzw. make ausgeben. BTW, für solche Sachen habe ich das folgende Schnippsel in meiner .bashrc: mk() { make "$@" 2>$1 |tee mlog; } So kann ich auch längere Sachen friedlich vor sich hin rödeln lassen und habe trotzdem einen kompletten Log. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de
Philipp Thomas
André Groß
[23 Jan 2003 11:00:54 +0100]:
Sorry, da habe ich in der Eile auf die falsche Mail geantwortet :( Ich wollte natürlich auf Marios Mail antworten. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de
Philipp Thomas wrote:
[...] BTW, für solche Sachen habe ich das folgende Schnippsel in meiner .bashrc:
mk() { make "$@" 2>$1 |tee mlog; }
So kann ich auch längere Sachen friedlich vor sich hin rödeln lassen und habe trotzdem einen kompletten Log.
... aber mitunter eine evtl. vorhandene Quellcode-Datei zerstoert, je nachdem, mit welchem Target der make Befehl aufgerufen wurde. Es sollte IMHO mk() { make "$@" 2>&1 | tee mlog; } ^^^ heissen, sonst wird naemlich stderr in eine Datei umge- leitet, die dem ersten Argument beim make Aufruf ent- spricht. Wenn ich also etwas wie mk program.o eingeben wuerde, dann wird das nicht so funktionieren, wie es urspruenglich mal gedacht war! Gruesse, Thomson PS: Zusaetzliche PM war ausnahmsweise mal Absicht. -- Thomas Hertweck, Geophysicist Geophysical Institute, Karlsruhe University (TH)
Thomas Hertweck
mk() { make "$@" 2>&1 | tee mlog; } ^^^ heissen,
Argl, das meinte ich ja auch nur waren meine Finger etwas zu schnell gewesen :( Danke für die Korrektur. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de
André Groß
internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant internal_functions.c:35: (near initialization for `php_builtin_extensions[0]') internal_functions.c:36: `phpext_wddx_ptr' undeclared here (not in a function)
zeige doch einmal die letzten Zeile der Fehlermeldung. Sieht eigentlich aus wie ein Linkerproblem.
Das würde mich jetzt interessieren, wieso du auf die ziemlich abwegige Idee kommst, dass es sich da um ein Linkerproblem handelt? Seid wann analysiert der Linker Quellcode? Hier beschwert sich der Compiler, das ihm an dieser Stelle ein Symbol unbekannt ist, mit dem eine Struktur initialisiert werden soll. Irgendwo fehlt es offensichtlich an einer Deklaration, was viele Gründe haben kann (entsprechender Header nicht eingebunden, Code wurde nicht an geänderte Header angepasst, Deklarationen sind durch #ifdef geschützt und das passende Define fehlt und noch etliche Möglichkeiten mehr). Wenn da vor kein "blafasel.h: file not found" im Log vorkommt, muss man den Code selbst analysieren und das braucht dann doch ein gerütteltes Mass an Erfahrung. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de
Hallo Philipp,
internal_functions.c:35: `phpext_xml_ptr' undeclared here (not in a function) internal_functions.c:35: initializer element is not constant internal_functions.c:35: (near initialization for `php_builtin_extensions[0]') internal_functions.c:36: `phpext_wddx_ptr' undeclared here (not in a function)
zeige doch einmal die letzten Zeile der Fehlermeldung. Sieht eigentlich aus wie ein Linkerproblem.
Das würde mich jetzt interessieren, wieso du auf die ziemlich abwegige Idee kommst, dass es sich da um ein Linkerproblem handelt? Seid wann analysiert der Linker Quellcode?
ja, ich hatte die Antwort gegeben. Und kurz nach dem Abschicken der Email auch schon meinen Fehler erkannt. Wahrscheinlich war ich zu sehr auf diese Art von Fehler fixiert, da ich kurz zuvor tatsächlich ein Linkerproblem - allerdings im Zusammenhang mit Sablotron und PHP - hatte. Ich hätte mir die Fehlermedlung einfach genauer anschauen sollen. Nichtdestoweniger konnten wir Marios anschließendes Problem beim Kompilieren von PHP mit MySQL-Support lösen. Es fehlte lediglich beim configure eine Pfadangabe zur installierten MySQL-Version und anschließend funktionierte das Kompilieren auch. Trotzdem Danke für den Hinweis auf meinen Fehler. Das nächste Mal sollte ich wohl eine weitere Email mit den Hinweis auf den gemachten Fehler verschicken. Gruß André P.S.: mk() { make "$@" 2>$1 |tee mlog; } in die .bashrc einzutragen ist wirklich ein klasse Tipp.
participants (5)
-
André Groß
-
Mario Duve
-
Michael Paarmann
-
Philipp Thomas
-
Thomas Hertweck