LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

writing LabVIEW application on Solaris that invokes a function in a shared library

In the "Call Library Function" Configure window I choose a Shared Library "xxx.so" file and select the Function Name "Foo" (written in C). It happens that function "Foo" calls another function "Bar" (also written in C) that resides in a different Shared Library (in /usr/dt/lib). After clicking "OK", a window comes up with the message "/xxx/xxx.so fatal relocation error ... symbol Bar: referenced symbol not found." Is there a way to get around this (such as search a list of libraries)? Combining the libraries is not an option; they are very large and belong to different software packages.
0 Kudos
Message 1 of 4
(2,617 Views)
j_b,

Is /usr/dt/lib in the LD_LIBRARY_PATH environment variable? Since one .so is dependent upon another, LabVIEW tries to load both. It sounds like LabVIEW cannot find it.

Randy Hoskin
Applications Engineer
National Instruments
http://www.ni.com/ask
0 Kudos
Message 2 of 4
(2,617 Views)
Thanks for your quick response.

Yes, usr/dt/lib is in the LD_LIBRARY_PATH environment variable. Is LabVIEW supposed to search LD_LIBRARY_PATH libraries in addition to the one I specify in the "Call Library Function" Configure window? That's what I would like it to do, but there still seems to be a problem. -j_b
0 Kudos
Message 3 of 4
(2,617 Views)
j_b,

It is supposed to. I would try adding /usr/dt/lib to the VI Search path in Tools»Options»Paths and see if that helps.

Randy Hoskin
Applications Engineer
National Instruments
http://www.ni.com/ask
0 Kudos
Message 4 of 4
(2,617 Views)