Post Go back to editing

iio_attr: Fatal: program compiled against libxml 20 using libxml 2

Category: Software
Product Number: using iio_attr with Pluto
Software Version: 0.24

I upgraded my Pluto firmware from 0.30 to 0.35 and libiio from 0.21 to 0.24

When I issue iio_attr -u usb: -C, I get this:

c:\c\iio>iio_attr -u usb: -c
Fatal: program compiled against libxml 20 using libxml 2
Fatal: program compiled against libxml 20 using libxml 2
Warning: program compiled against libxml 2090 using older 209
IIO context has 5 devices:
iio:device0, adm1177-iio: found 2 channels
iio:device1, ad9361-phy: found 9 channels
iio:device2, xadc: found 10 channels
iio:device3, cf-ad9361-dds-core-lpc: found 6 channels
iio:device4, cf-ad9361-lpc: found 2 channels

The answer from a previous post was that libxml.dll existed somewhere. I don't see that file anywhere. I only have libxml2.dll in the Windows\System32 directory

  • No libxml.dll on computer. Search found several copies of libxml2.dll and libxml2-2.dll and one libxml_plugin.dll

  • Can you please see here:  RE: Problems using ADALM-PLUTO in python 

    Can you try to temporarily rename the libxml2.dll in the Windows\System32 folder and reinstall libiio?


  • The only reason I upgraded my Pluto fw and libiio was that I had downloaded a program (SATSAGEN, wonderful work) that called out fw 0.31, so I thought I'd upgrade (I had fw 0.30). I've just now downgraded back to fw 0.30 and libiio 0.21 because I found that SATSAGEN works ok with that.. BUT to get rid of the error and warning messages I had to UNINSTALL libiio and reinstall. Changing the names of libxml, libxml2, libiio,..... wasn't enough. I hate to gripe about Pluto since it's amazing for the price, but I find the fumbling and learning curve with the software one step forward 7/8 steps back. I write C code with MinGW, and with libiio 0.21 I see the libiio.dll.a file that I need with that. I don't see that file in later revs. I'll stay with the versions I have unless I must change. I thought that I had to change to use SATSAGEN, but I was wrong.

  • Libiio is typical backward compatible. To my knowledge we never broke this compatibility. The issue is that the installer never overwrites existing files in the system folder. And I think that's for good reason. Honestly I'm not sure that the conflicting dll was created by a pervious install.

    We need to check why the libiio.dll.a is not longer packaged.

    Sorry for the inconvenience.


  • I am pretty sure the .lib is the same thing as the .dll.a.

    For your libxml2 error, I would guess it's because you are using the installed Libiio which expects libxml2.dll in the system folder, while running your program under MinGW which provides its own (and different) copy of libxml2.xml.