gpt4 book ai didi

gcc - 尽管缺少共享库和关联符号,如何链接可执行文件?

转载 作者:行者123 更新时间:2023-12-03 05:35:54 31 4
gpt4 key购买 nike

如何强制 gcc/ld 继续并链接(部分)可用的可执行文件,尽管缺少共享库(以及相关的缺少符号)?

上下文:我有一个硬件驱动程序,仅作为 32 位 ELF 二进制 blob (libEposCmd.so) 分发。它取决于一个库(libftd2xx.so),我从上下文中知道该库实际上并未使用(ftdi 的东西用于 USB 串行适配器,我没有使用它)。

gcc main.o -o epos_server -m32 -L/usr/lib32 -L/usr/local/lib32 -lEposCmd
/usr/bin/ld: warning: libftd2xx.so.0, needed by /usr/local/lib32/libEposCmd.so, not found (try using -rp
ath or -rpath-link)
main.o: In function `main':
/usr/local/lib32/libEposCmd.so: undefined reference to `FT_Write'
/usr/local/lib32/libEposCmd.so: undefined reference to `FT_SetDataCharacteristics'
/usr/local/lib32/libEposCmd.so: undefined reference to `FT_GetDeviceInfoDetail'
/usr/local/lib32/libEposCmd.so: undefined reference to `FT_SetFlowControl'
...

我唯一 undefined reference 是 FT_*,我相当确定它们都属于 libftd2xx。

丑陋的黑客行为是可以接受的;这是研究代码,我们希望尽快用具有更好 Linux 支持的硬件(maxon epos2 电机驱动程序)替换该硬件。

更新:.so 未被删除,因此应该可以提取缺失函数的原型(prototype)...

最佳答案

最快的方法是创建一个包含缺少函数的虚拟库并与其链接。

关于gcc - 尽管缺少共享库和关联符号,如何链接可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363398/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com