2009-10-29 5 views
0

J'essaie de compiler mod_transform sous Mac OS X 10.6, mais je reçois une erreur ld lors de l'exécution de make. Merci à diciu J'ai ajouté quelques CFLAGS qui résolvent la plupart des problèmes de liaison, mais je suis toujours incapable d'obtenir la apreq2 reliant au travailSymboles non définis compiler le module apache mod_transform sur Mac OS X

 
$ CFLAGS="-lxml2 -lxslt -L/opt/local/lib -lapreq2" ./configure --with-apr=/opt/local/bin/apr-1-config --with-apr-util=/opt/local/bin/apu-1-config --with-apxs=/opt/local/apache2/bin/apxs --with-apreq2=/opt/local/bin/apreq2-config 

... snip ...

 
$ make 
$ make 
Making all in src 
/opt/local/share/apr-1/build/libtool --tag=CC --mode=link gcc -Wall -I../include -I/usr/local/include -I/usr/local/include/libxml2 -O2 -arch x86_64 -I/opt/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -I/opt/local/apache2/include -I/opt/local/include/apr-1 -I/opt/local/include/apr-1 -I/opt/local/include -O2 -arch x86_64 -I/opt/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -I/opt/local/apache2/include -I/opt/local/include/apr-1 -I/opt/local/include -I/opt/local/include/apr-1 -I/opt/local/include/apreq2 -I/opt/local/include/apr-1 -I/opt/local/include -lxml2 -lxslt -L/opt/local/lib -lapreq2 -module -export-dynamic -avoid-version -no-undefined /opt/local/lib/libapreq2.la -L/opt/local/lib -laprutil-1 -L/opt/local/lib/db46 -L/opt/local/lib -lapr-1 -lpthread -ldb-4.6 -lexpat -liconv -o http.la -rpath /opt/local/apache2/modules/mod_transform http_la-http.lo 
/usr/bin/gcc-4.2 -o .libs/http.so -bundle .libs/http_la-http.o -lxml2 -lxslt -L/opt/local/lib /opt/local/lib/libapreq2.dylib -L/opt/local/lib/db46 /opt/local/lib/libaprutil-1.dylib /opt/local/lib/libapr-1.dylib -lpthread /opt/local/lib/db46/libdb-4.6.dylib /opt/local/lib/libexpat.dylib /opt/local/lib/libiconv.dylib -arch x86_64 -arch x86_64 
Undefined symbols: 
    "_apreq_handle_apache2", referenced from: 
     _transform_run_begin in http_la-http.o 
     _filter_init in http_la-http.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make[1]: *** [http.la] Error 1 
make: *** [all-recursive] Error 1 

Quelqu'un at-il d'autres réglages pour résoudre ce problème?

C'est mod_transform de http://svn.outoforder.cc/svn/mod_transform/trunk/

Laurence

Répondre

0

On dirait que votre configure run n'a pas réussi à prendre une dépendance à l'égard libxml2:

nm -arch x86_64 /usr/lib/libxml2.dylib | grep _xmlXPathNewFloat 
    0000000000054896 T _xmlXPathNewFloat 

Pour corriger la compilation, vous pouvez ajouter "-lxml2" à gcc, ie:

/usr/bin/gcc-4.2 -o .libs/http.so -bundle .libs/http_la-http.o ... -lxml2 

mais ceci est généralement géré par le configurez le fichier Makefile créé. Essayez de parcourir le fichier configure.log pour savoir pourquoi la bibliothèque libxml2 n'est pas correctement configurée.