ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

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,697 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,697 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,697 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,697 Views)