你如何链接到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,所以它会使用任何可用的版本?

Solutions Collecting From Web of "你如何链接到GCC中的特定版本的共享库"

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

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

如何创建一个链接到.3的项目的本地符号链接,然后你可以在编译时使用-L。 我不确定你是否会遇到名称冲突,但是你总是可以把它叫做libcurl-old.so以防万一。

我认为正确的做法是使用链接器的--filter--auxiliary标志。

他们没有很多的文件,但应该允许您根据您安装的机器加载来自同一个库的不同版本的符号。