Re: [xml] undefined reference to / segfault on _imp__xmlFree in code::blocks on WinXP
- From: "Martin Schlemmer" <Martin Schlemmer nwu ac za>
- To: <xml gnome org>
- Subject: Re: [xml] undefined reference to / segfault on _imp__xmlFree in code::blocks on WinXP
- Date: Wed, 09 Jan 2013 17:12:53 +0200
[Resend as it seemed to have gotten lost]
On 1/8/2013 at 5:29 PM, Eduard Budaca <budaca eduard gmail com> wrote:
I am using Code::Blocks with the GNU GCC compiler on Windows XP.
I am currently learning to use libxml2 so I am trying the tutorials.
Everything worked fine until trying xmlFree(), whick resulted in an
undefined reference.
After searching in the headers I found the #define IN_LIBXML fix, which
resulted in a segfault.
After trying a commit which required editing the xmlexports.h file, I got a
segault again.
So, since this bug has (apparently) been around for a while, I would like
to know if there is a fix for it or a replacement for xmlFree()
Some questions:
- Where did you get the binaries for libxml
- What version of libxml
- Which import library are you linking to (shared/static)
If its a later version of libxml with shared import library (ie. linking to the DLL via the .dll.a import
library - if built via ./configure && make; I do not use), it "should" just work, if its the static version
(normally .a) , then you should define LIBXML_STATIC (-DLIBXML_STATIC to CFLAGS/CXXFLAGS). If its the latter
case (static) and you did not define LIBXML_STATIC, then its *not a bug*.
If you built it yourself and used win32/Makefile.mingw, then you probably will run into issues, as it
generates:
libxml2.lib
libxml2.a
which will cause problems (and probably *is a bug*), as the default search order for LD with MinGW is:
libxml2.dll.a
xml2.dll.a
libxml2.a
xml2.lib
libxml2.dll
xml2.dll
xml2.lib
and will cause "libxml2.a" to be found first even with the shared import library present ("libxml2.lib" -
rather a MSVC naming scheme than a GCC/LD one), and as you probably did *not* have LIBXML_STATIC defined, you
are back to the undefined reference. In this case I guess you can just remove "libxml2.a" if you want to link
to the DLL and not static, else add the define...
Also, I guess not using import libraries generated with gcc/binutils (ie. .LIB via MSVC) could cause other
problems.
Regards,
Martin
Vrywaringsklousule / Disclaimer: http://www.nwu.ac.za/it/gov-man/disclaimer.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]