【发布时间】:2025-11-29 14:20:05
【问题描述】:
我需要编译,最重要的是,链接一个C 程序,该程序使用共享库文件中的专有function。由于与之前的开发团队缺乏沟通,因此没有适当的文档。我声明了一个函数原型(因为我知道参数的数量和类型):
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'
显然,我需要告诉链接器也包含其他库,而且更糟糕的是,它们需要按特定顺序排列。我尝试使用-Wl,-rpath=、-Wl,--no-undefined 和-Wl,--start-group 导出LD_LIBRARY_PATH。有没有一种简单的方法可以在没有正确顺序的情况下为链接器提供所有 .so 文件?
【问题讨论】:
标签: c linux gcc linker shared-libraries