2009-08-07 4 views
1

Wie kann ich konfigurieren und verwenden, um anzugeben, 64-Bit-Bibliotheken zu verwenden? Ich dachte, es wäre automatisch, aber ich bekomme falsche ELF-Klasse.Verwendung von "make" 64-Bit-Bibliotheken wegen ELFCLASS64-Fehler zu verwenden

Ich versuche, Xdebug für Ubuntu 64 für die Verwendung mit LAMPP (XAMPP für Linux) zu kompilieren.

./lampp start 

Failed loading /opt/lampp/lib/php/extensions/xdebug.so: /opt/lampp/lib/php/extensions/xdebug.so: wrong ELF class: ELFCLASS64 

Die ./configure sieht für mich OK, und das Make funktioniert ohne Fehler, ich habe das configure falls seine relevanten kopiert:

/xdebug-2.0.3$ ./configure 

checking for grep that handles long lines and -e... /bin/grep 
checking for egrep... /bin/grep -E 
checking for a sed that does not truncate output... /bin/sed 
checking for gcc... gcc 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking whether gcc and cc understand -c and -o together... yes 
checking for system library directory... lib 
checking if compiler supports -R... no 
checking if compiler supports -Wl,-rpath,... yes 
checking build system type... x86_64-unknown-linux-gnu 
checking host system type... x86_64-unknown-linux-gnu 
checking target system type... x86_64-unknown-linux-gnu 
checking for PHP prefix... /usr 
checking for PHP includes... -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib 
checking for PHP extension directory... /usr/lib/php5/20060613 
checking for PHP installed headers prefix... /usr/include/php5 
checking for re2c... no 
configure: WARNING: You will need re2c 0.12.0 or later if you want to regenerate PHP parsers. 
checking for gawk... no 
checking for nawk... nawk 
checking if nawk is broken... no 
checking whether to enable eXtended debugging support... yes, shared 
checking for gettimeofday... yes 
checking for cos in -lm... yes 
checking for a sed that does not truncate output... (cached) /bin/sed 
checking for fgrep... /bin/grep -F 
checking for ld used by gcc... /usr/bin/ld 
checking if the linker (/usr/bin/ld) is GNU ld... yes 
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B 
checking the name lister (/usr/bin/nm -B) interface... BSD nm 
checking whether ln -s works... yes 
checking the maximum length of command line arguments... 1572864 
checking whether the shell understands some XSI constructs... yes 
checking whether the shell understands "+="... yes 
checking for /usr/bin/ld option to reload object files... -r 
checking for objdump... objdump 
checking how to recognize dependent libraries... pass_all 
checking for ar... ar 
checking for strip... strip 
checking for ranlib... ranlib 
checking command to parse /usr/bin/nm -B output from gcc object... ok 
checking how to run the C preprocessor... gcc -E 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking for dlfcn.h... yes 
checking for objdir... .libs 
checking if gcc supports -fno-rtti -fno-exceptions... no 
checking for gcc option to produce PIC... -fPIC -DPIC 
checking if gcc PIC flag -fPIC -DPIC works... yes 
checking if gcc static flag -static works... yes 
checking if gcc supports -c -o file.o... yes 
checking if gcc supports -c -o file.o... (cached) yes 
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes 
checking whether -lc should be explicitly linked in... no 
checking dynamic linker characteristics... GNU/Linux ld.so 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... no 
configure: creating ./config.status 
config.status: creating config.h 
config.status: config.h is unchanged 
config.status: executing libtool commands 
+0

Check out https://launchpad.net/~zend-framework/+archive/ppa für die neuesten Zend Engine (glaube ich) . – MighMoS

Antwort

2

Ich bin mir nicht sicher über den Fehler, aber warum kompilieren Sie xdebug? Es ist in den Repositories von Ubuntu als php5-xdebug (sudo apt-get install php5-xdebug) verfügbar. Obwohl Sie Ihre Distribution nicht erwähnen, vielleicht unter einem ähnlichen Namen?

Aber um Ihre Frage zu beantworten, die Fehlermeldung sieht aus wie xdebug ist 64 Bit, aber das ist ein Problem (ist etwas lampp eine binäre 32-Bit ausführt?)

+0

na ja, eigentlich habe ich diese Seite lampp zu kompilieren http://ubuntuforums.org/showthread.php?t=719110 ich versuchte sudo apt-get php5-xdebug installieren und die xdebug bewegt .so zu meinem/opt/lampp/lib/php/extensions/dir aber immer noch die Elf64-Fehler Ich benutze Wubi, die Ubuntu auf 64 ist.Ich bin nicht sicher, wie man herausfinden kann, wenn lampp 32-Bit-Binärdateien ausführt – 0x4f3759df

+0

Also habe ich das 32-Bit-xdebug von hier heruntergeladen, http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging weil ich denke, wenn ich ./configure es automake ein 64 Bit, und jetzt sagt es, Xdebug erfordert Zend Engine API-Version 220090626. Die Zend Engine API-Version 220060519, die installiert ist, ist veraltet. so ist der Fortschritt. Ich denke, ich muss meine PhP-Version jetzt aktualisieren. Danke – 0x4f3759df

0

Vielleicht Bibliothekspfad des Laufzeit-Linker ist falsch. Ist das Verzeichnis/opt/lampp/lib64 vorhanden? Ist LAMPP ein Shell-Skript? Wenn ja, auf welchen Wert (und ob) setzt sie die Variable LD_LIBRARY_PATH?

+0

Ich habe kein lib64 dir. Ich versuchte sudo apt-get installieren ia64-libs , aber das Paket wurde nicht gefunden. – 0x4f3759df

+0

Hallo! Also hast du es doch herausgefunden? Ich habe genau das gleiche Problem auf xubuntu und keine Leads :-( – vector

1

nic:

LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH ./lampp start 

Arbeit? Ich benutze kein Ubuntu, daher könnte der Pfad variieren. Eine Sache zu tun ist,

ldd ./lampp 

zu sehen, was der Standard ausführbaren Punkte.

+0

lampp $ ldd ./lampp \t nicht eine dynamische ausführbare Ich habe keine lib64 dir. Ich versuchte Sudo apt-get installieren ia64-libs aber das Paket wurde nicht gefunden. – 0x4f3759df

1

Versuchen Sie, die 32-Bit-Libs zeigen, LD_LIBRARY_PATH=/lib32:LD_LIBRARY_PATH .

Wenn das nicht funktioniert, versuchen Sie die 64-Bit-Bibliotheken, LD_LIBRARY_PATH=/lib64:LD_LIBRARY_PATH.

komplette Befehl:

sudo ./configure --enable-xdebug --with-php-config=/opt/lampp/bin/php-config LD_LIBRARY_PATH=/lib32:LD_LIBRARY_PATH 
1

xdebug wurde in 32-Bit kompiliert zu werden. Kompilieren Sie es mit:

CXXFLAGS="-m64" CFLAGS="-m64" LDFLAGS="-m64" ./configure --enable-xdebug 

für mich auf SPARC Solaris gearbeitet 10.