NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

.SO works when using in Linux binary built via makefile but failed when called from LV

I have a shared-object, layer 1, which makes some calls into a layer 0 shared-object. 

 

This library has a number of functions for interacting with a third party PXI module.  When I use this in a simply Linux binary, (source and makefile provided by 3rd party) it works as expected.

 

However, if I try to use it in a VI using the call library function node, my deployment hangs and I get an error:

"/usr/lib64/layer1.so: unresolved symbol layer0_function()"

 

It seems like this is some sort of linking issue as occurring to the 3rd party vendor, the layer0 SO is not directly associated anywhere in the layer1 SO, rather that linking is occurring during the make process of the Linux binary.  Since that doesn't happen in the LV VI case, that would explain why LV can't resolve the layer0 calls since it doesn't know where that SO is.

 

I have limited C/Linux development experience though so this is just a guess.  Does this seem reasonable or is there a more likely explanation?



I saw my father do some work on a car once as a kid and I asked him "How did you know how to do that?" He responded "I didn't, I had to figure it out."
0 Kudos
Message 1 of 1
(1,628 Views)