Неопределенный символ при загрузке расширения php, созданного с помощью SWIG

Я пытаюсь загрузить расширение PHP, созданное с помощью SWIG, но получаю следующая ошибка при запуске PHP:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/libtg.so' - /usr/lib/php5/20090626/libtg.so: undefined symbol: __gxx_personality_v0 in Unknown on line 0

Расширение, которое я пытаюсь загрузить, называется libtg.soи было скомпилировано с помощью команды :

g++ -shared libtg_wrap.o -o libtg.so

, где libtg_wrap.o— это объектный файл для кода оболочки, сгенерированного SWIG.

Отсутствующий символ __gxx_personality_v0найден в libstdc++.so, как видно из следующей команды:

$ nm -D /usr/lib/libstdc++.so.6 | grep __gxx_personality_v0
00000000000b9990 T __gxx_personality_v0

libstdc++.soупоминается в libtg.so, как видно из следующей команды :

$ ldd libtg.so
linux-vdso.so.1 =>  (0x00007fff5f932000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3fc937c000)
libm.so.6 => /lib/libm.so.6 (0x00007f3fc90f9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f3fc8ee2000)
libc.so.6 => /lib/libc.so.6 (0x00007f3fc8b5f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3fc98fc000)

, поэтому я не понимаю, почему он не может найти символ. Любые идеи о том, как я могу отладить это?

7
задан HC4 - reinstate Monica 30 April 2012 в 21:45
поделиться