小编Bro*_*ood的帖子

将编译库链接到更新版本的glibc

我正在开发一个使用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 /的选项,但收效甚微.

谢谢!

c glibc shared-libraries ftdi

9
推荐指数
1
解决办法
1730
查看次数

标签 统计

c ×1

ftdi ×1

glibc ×1

shared-libraries ×1