[xml] libxml2 on cygwin
- From: Mohamed Kamil Mansor <kamil axiomsol com>
- To: xml gnome org
- Cc: mdkamil gmail com, zamani <zamani axiomsol com>
- Subject: [xml] libxml2 on cygwin
- Date: Tue, 15 Mar 2005 16:56:54 +0800
Hello,
I want to share my solution on compiling program that using libxml2 on cygwin.
Cygwin already prebuild libxml2 package. However while compiling my
application, i've got error undefine reference during linking stage. I've
search all over the web but didn't get solution to my problem.
--------------- problem during compiling my applicaiton --------------------
$ make -f Makefile-cygwin
gcc -g -I/usr/include/libxml2 -DWINDOWS -o ald.o -c ald.c
gcc -g -I/usr/include/libxml2 -L/usr/lib -lxml2 -lz -liconv -lm -o ald ald.o
ald.o(.text+0x1217): In function `parseProjfile':
ald-v0.7/ald.c:392: undefined reference to `_xmlParseFile'
ald.o(.text+0x1256):ald-v0.7/ald.c:397: undefined reference to
`_xmlDocGetRootElement'
ald.o(.text+0x1282):ald-v0.7/ald.c:401: undefined reference to `_xmlFreeDoc'
ald.o(.text+0x12a4):ald-v0.7/ald.c:405: undefined reference to `_xmlStrcmp'
ald.o(.text+0x12cb):ald-v0.7/ald.c:407: undefined reference to `_xmlFreeDoc'
ald.o(.text+0x138d): In function `parseData':
ald-v0.7/ald.c:429: undefined reference to `_xmlStrcmp'
ald.o(.text+0x13da):ald-v0.7/ald.c:434: undefined reference to
`_xmlNodeListGetString'
ald.o(.text+0x13f3):ald-v0.7/ald.c:435: undefined reference to `_xmlStrcmp'
collect2: ld returned 1 exit status
make: *** [ald] Error 1
---------------------------- end -------------------------
xml2-config output:
$ xml2-config --libs
-L/usr/lib -lxml2 -lz -liconv -lm
$ xml2-config --cflags
-I/usr/include/libxml2
part of content file: /usr/lib/libxml2.la
--------------- snap -------------------
# The name that we can dlopen(3).
dlname='../bin/cygxml2-2.dll'
# Names of this library.
library_names='libxml2.dll.a'
-------------- snip ------------------
As described in libxml2.la file, the dlname='../bin/cygxml2-2.dll' which
located in /usr/bin/cygxml2-2.dll. However the actual cygxml2-2.dll file
located at /bin and not at /usr/bin.
So i've changed /usr/lib/libxml2.la file into:
--------------- snap -------------------
# The name that we can dlopen(3).
dlname='/bin/cygxml2-2.dll'
# Names of this library.
library_names='libxml2.dll.a'
-------------- snip ------------------
Then i've also add options "--dll-search-prefix=cyg -L/bin -lxml2-2" during
linking process.
--------------- compilation success with no error ----------------
$ make -f Makefile-cygwin
gcc -g -I/usr/include/libxml2 -DWINDOWS -o ald.o -c ald.c
gcc -g -I/usr/include/libxml2 -L/usr/lib -lxml2 -lz -liconv -lm
--dll-search-prefix=cyg -L/bin -lxml2-2 -o ald ald.o
---------------- end -------------------------
Hopefully, this solutions will help other peoples that face same problem with
me. Good luck.
regards,
--
Mohamed Kamil Mansor
Axiomatic Solutions Sdn Bhd
Block F1, UPM-MTDC Technology Incubation Center One,
Lebuh Silikon, 43400 Serdang, Selangor.
Telephone: +603-86567824 Fax: +603-86567827
E-mail: kamil axiomsol com
Website: http://www.axiomsol.com
---
[This E-mail scanned for viruses by Declude AntiVirus]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]