Re: [xml] undefined reference to / segfault on _imp__xmlFree in code::blocks on WinXP



[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]