gpt4 book ai didi

c - 在 Linux 上使用 gcc 链接共享库

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:52 25 4
gpt4 key购买 nike

我需要编译,最重要的是,链接一个 C 程序,该程序使用共享库文件中的专有 function。由于与之前的开发团队缺乏沟通,所以没有合适的文档。我声明了一个函数原型(prototype)(因为我知道参数的数量和类型):

int CustomFunction(unsigned char *in, int size);

因为可以从 /customlibs/libcustom.so 中获取该函数名称,所以我尝试编译代码并像这样链接它:

gcc -L/customlibs testing.c -o testing -lcustom

它会抛出一些如下所示的错误消息:

/customlibs/libcustom.so: undefined reference to `AnotherCustomFunction'

显然,我需要告诉链接器也包含其他库,而且更糟糕的是,它们需要按特定顺序排列。我尝试导出 LD_LIBRARY_PATH,使用 -Wl,-rpath=-Wl,--no-undefined-Wl,- -开始组。有没有一种简单的方法可以在没有正确顺序的情况下为链接器提供所有 .so 文件?

最佳答案

我找到了我的问题的解决方案(或解决方法):添加 -Wl,--warn-unresolved-symbols,这会将错误变成警告。请注意,只有当您绝对确定您的函数不依赖于 undefined reference to: 消息中提到的符号时,这才有效。

关于c - 在 Linux 上使用 gcc 链接共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082816/

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