Python 2.7 liblabjackusb.so:未定义符号:DigitalIO

Python 2.7 liblabjackusb.so:未定义符号:DigitalIO,python-2.7,shared-libraries,ubuntu-16.04,Python 2.7,Shared Libraries,Ubuntu 16.04,我得到了LabJack产品的安装和库问题 我按照这些安装步骤在ubuntu 16.04上进行了安装。 下面的代码为liblabjackusb.so中的DigitalIO提供了一个未定义的符号 $ python >>> import u12 >>> d =u12.U12() >>> d.digitalIO(idNum=-1, demo=0, trisD=3, trisIO=0, stateD=0, stateIO=0, updateDigit

我得到了LabJack产品的安装和库问题

我按照这些安装步骤在ubuntu 16.04上进行了安装。

下面的代码为liblabjackusb.so中的DigitalIO提供了一个未定义的符号

$ 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
这表明lib的生成是正确的

为什么u12.py会加载liblabjackusb.so,因为它没有DigitalIO函数声明和实现? (参见u12.py第348行)。函数_loadLinuxSo()是否应该加载libljacklm.so而不是liblabjackusb.so

这是虫子吗


有人遇到过这个问题吗?

我遇到了同样的问题,我在Labjack网站上找到了一篇文章,应该可以回答你的问题

实际上,U12支持是在libjacklm.so实现之前添加的。
他们建议使用rawDIO解决问题。

太好了。我在他们的github项目上发现了一个bug问题。
$cd ljacklm/libljacklm
$ nm ljacklm.o | grep DigitalIO
0000000000007489 T DigitalIO
$ nm libljacklm.so.1.20.2 | grep DigitalIO
00000000000091a9 T DigitalIO