Re: Using callable IDL from a Qt application [message #58762 is a reply to message #58675] |
Thu, 14 February 2008 07:24   |
Tiemen
Messages: 3 Registered: February 2008
|
Junior Member |
|
|
On Feb 14, 3:53 pm, Nigel Wade <n...@ion.le.ac.uk> wrote:
> Tiemen wrote:
>> Hello,
>
>> I'm trying to link an existing application with IDL on linux, using
>> lidbidl.so. I started creating a small testing application and
>> everything went great, I had things up and running quite quickly.
>> However, the existing application uses Qt (www.trolltech.com) for its
>> GUI. I want to keep it that way, so I don't want to use IDLs widgets,
>> I only want IDL to perform some calculations on data provided by the
>> Qt application.
>
>> At this point the trouble started.
>
>> Compiling/linking of a small example application seems to go fine, but
>> starting the program gives me a lot of
>
>> "libpngerror: zlib version error"
>
>> After which my Qt GUI appears, but without any icons or graphics (as
>> they are in png format). My best guess is that IDL links with libpng
>> and/or libz statically instead of dynamically, and that therefore the
>> wrong zlib is used. So, the normal thing would be to recompile IDL,
>> but that's a bit hard with commercial software. I've looked into the
>> possibility to recompile Qt with another static zlib, but this gives a
>> lot of problems and no solution yet.
>
>> I'm using IDL 7, system zlib version: 1.2.3.
>
>> Hope you can help. If you need any more information I will of course
>> be happy to supply. I can supply a simple program which will
>> demonstrate the problem if you wish (needs Qt, and maybe it won't show
>> the problem if your zlib differs or so).
>
>> Thanks in advance,
>
>> Tiemen
>
>> PS Of course I've asked both IDL and Qt for support, but Qt mainly
>> seems to think the problem is at IDL and IDL is quite slow to reply,
>> so I thought about you guys :)
>
> From a simple test it would appear that, yes, IDL is statically linked against
> zlib (or at least it contains some of the zlib functions). A C program which
> links against libidl and prints the value of zlibVersion() outputs 1.1.4.
>
> Try specifying -zlib before -lidl on the link. This ought to ensure that calls
> to zlib routines are resolved by zlib rather than libidl. When I do this with
> the above program I get 1.2.1.2, which is the value of the system zlib version.
>
> --
> Nigel Wade, System Administrator, Space Plasma Physics Group,
> University of Leicester, Leicester, LE1 7RH, UK
> E-mail : n...@ion.le.ac.uk
> Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555
You just made my day :)
(although it is -lz instead of -zlib)
Thanks a lot!
Tiemen
|
|
|