我正在处理一个项目,使用ftdi D2XX驱动器与ENTTEC DMX usb pro设备进行接口交互。 ftdi驱动程序(存储在/ usr / local / lib /中的libftdi2xx.so.1.1.12)针对glibc v2.14或更高版本进行编译。
我正在debian 7上开发,该系统仅支持glibc v2.13及以下版本。当执行我编写的C代码(调用ftdi驱动程序)时,会出现错误:
./a.out: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/lib/libftd2xx.so)
考虑到glibc版本不兼容,这是有道理的。我已经将最新版的glibc(v2.17)下载并安装到我的计算机的临时目录(“~/glibc-testing/install/lib/”)中,并使用以下命令:
~/glibc-testing/install/lib/ld-linux-x86-64.so.2 --library-path ~/glibc-testing/install/lib/ ./a.out
通过这个调用,我能够成功运行C代码。
我想将这个C代码编译成共享库。它将用于与DMX设备进行接口交互,并由使用C#开发的主应用程序调用。
我不确定如何继续前进。看起来我需要告诉fdti驱动程序始终使用较新的glibc,同时让其余应用程序使用普通库。ftdi 2DXX驱动程序仅可预编译(无源代码可用)。是否有一种方法将这个预编译程序链接到新库?
我已经研究了导出LD_LIBRARY_PATH=/home/.../glibc/install/lib/的选项,但效果甚微。
谢谢!