我正在开发一个使用ftdi D2XX驱动程序与ENTTEC DMX usb pro设备连接的项目.存储在/ usr/local/lib /中的ftdi驱动程序(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)
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为知道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
Run Code Online (Sandbox Code Playgroud)
通过此调用,我能够成功运行C代码.
我想将此C代码编译为共享库.它将用于与DMX设备连接,并将由C#开发的主应用程序调用.
我不确定如何前进.我需要做的是告诉fdti驱动程序始终使用较新的glibc,同时让应用程序的其余部分使用普通库.ftdi 2DXX驱动程序仅可预编译(无源代码可用).有没有办法将这个预编译的程序链接到新库?
我已经查看了导出LD_LIBRARY_PATH =/home /.../ glibc/install/lib /的选项,但收效甚微.
谢谢!