python 2.7 - liblabjackusb.so: undefined symbol: DigitalIO -
i got installation , library issue labjack product https://labjack.com/products/u12
i followed these installation steps installation on ubuntu 16.04. https://labjack.com/support/software/installers/exodriver/mac-and-linux/in-depth-build-instructions
the following code brings me undefined symbol digitalio in liblabjackusb.so
$ python >>> import u12 >>> d =u12.u12() >>> d.digitalio(idnum=-1, demo=0, trisd=3, trisio=0, stated=0, stateio=0, updatedigital=1) traceback (most recent call last): file "<stdin>", line 1, in <module> file "build/bdist.linux-x86_64/egg/u12.py", line 2506, in digitalio def getfirmwareversion(self, idnum=none): file "/usr/lib/python2.7/ctypes/__init__.py", line 375, in __getattr__ func = self.__getitem__(name) file "/usr/lib/python2.7/ctypes/__init__.py", line 380, in __getitem__ func = self._funcptr((name_or_ordinal, self)) attributeerror: /usr/local/lib/liblabjackusb.so: undefined symbol: digitalio
i looking around digitalio implementation , found in ljacklm.h , ljacklm.c.
$cd ljacklm/libljacklm $ nm ljacklm.o | grep digitalio 0000000000007489 t digitalio $ nm libljacklm.so.1.20.2 | grep digitalio 00000000000091a9 t digitalio
this shows lib generated correctly.
how come u12.py loads liblabjackusb.so since not have digitalio function declaration , implementation ? (see u12.py line 348) . should function _loadlinuxso() load libljacklm.so instead of liblabjackusb.so !?
it bug ?
did encounter ?
i ran same issue , found post on labjack website should answer question.
https://labjack.com/forums/u12/liblabjackusbso-undefined-symbol-digitalio
essentially u12 support added before libjacklm.so implemented. suggest workaround using rawdio.
Comments
Post a Comment