Ошибка компиляции XML: Xerces-2.7.0 - PullRequest
3 голосов
/ 10 января 2012

Я скомпилировал xerces-c-2.7.0 и запустил perl Makefile.PL в каталоге XML-Xerces-2.7.0

Comiple XML: Xerces с использованием gmake и gor ниже ошибки:

> Blockquote

<br>make[1]: Entering directory `/home/czhang/XML_Xerces-2.7.0/Handler'</br>
<br>make[1]: Leaving directory `/home/czhang/XML_Xerces-2.7.0/Handler'</br>
<br>g++ -c  -I. -IHandler -I/home/czhang/xerces-c-src_2_7_0/include -w -DNDEBUG </br><br>-DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS <br>-DXML_USE_NETACCESSOR_SOCKET -D_REENTRANT -DDEBIAN -D_GNU_SOURCE -O   <br>-DVERSION=\"2.7.0-0\" -DXS_VERSION=\"2.7.0-0\" -fPIC "-I/usr/lib/perl5/5.14.2/i586-linux-thread-multi/CORE"   Xerces.cpp </br>

<br>Xerces.cpp:1219:9: error: expected unqualified-id before string constant</br>
<br>Xerces.cpp:1220:9: error: ‘SwigPerlWrapper’ does not name a type</br>
<br>Xerces.cpp:1225:3: error: ‘SwigPerlWrapperPtr’ does not name a type</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp:69331:1: error: too many initializers for ‘swig_command_info’</br>
<br>Xerces.cpp: In function ‘void boot_XML__Xerces(PerlInterpreter*, CV*)’:</br>
<br>Xerces.cpp:69557:5: error: ‘struct swig_command_info’ has no member named ‘wrapper’
<br>gmake: *** [Xerces.o] Error 1</br>

> Blockquote

Спасибо за любую помощь!

1 Ответ

2 голосов
/ 04 февраля 2012

Вам нужно пересоздать привязки swig при сборке модуля Perl Xerces, чтобы собрать модуль с Perl 5.8.9 или новее.

Для этого убедитесь, что у вас установлен swig (сборка из исходного кода или установка пакета для вашей системы) и установите для переменной среды XERCES_DEVEL значение 1. Если вы используете bash:

export XERCES_DEVEL=1

Затем выполните обычные действия:

perl Makefile.PL
make 
make install

Когда вы запустите make, он будет использовать swig для восстановления привязок, и все будет готово.

...