如何链接到GCC中的特定版本的共享库

Ada*_*rce 41 linux linker debian gcc

我正在编译一些在Debian Linux系统上使用libcurl的代码.我的开发机器正在运行Debian 5,但我希望二进制文件也可用于较旧的Debian 4系统.

我发现如果我指定-lcurl它将链接到libcurl.so.4但Debian 4系统只有libcurl.so.3

有什么方法我可以告诉GCC链接到libcurl.so.3(它存在于Debian 4和5中)或者只是libcurl.so所以它将使用任何可用的版本?

小智 70

而不是使用"-lcurl"使用"-l:libcurl.so.3"而且当然也使用"-L _installed_pa​​th_"

  • 当它被符号链接时同样的问题。-l:libX.so 链接到 libX.so.Y (2认同)

bdo*_*lan 29

您可以在链接器命令行上传递实际的.so文件而不是-l,它应该执行您想要的操作.

  • 啊,除了 libcurl.so 只是 Debian 上 lubcurl.so.4 的符号链接之外,这几乎可以工作,因此它仍然链接到 libcurl.so.4。 (3认同)