我从源代码编译最新的卷曲版本
curl version: 7.52.1-DEV
然而,在make完成后,我获得了4.4.0版本的库文件
curl$ ls -la build/lib/
total 2636
drwxr-xr-x 3 jenkins jenkins 4096 Jan 15 19:47 .
drwxr-xr-x 6 jenkins jenkins 4096 Jan 15 19:47 ..
-rw-r--r-- 1 jenkins jenkins 536018 Jan 15 19:47 libcurl.a
-rwxr-xr-x 1 jenkins jenkins 1127 Jan 15 19:47 libcurl.la
lrwxrwxrwx 1 jenkins jenkins 16 Jan 15 19:47 libcurl.so -> libcurl.so.4.4.0
lrwxrwxrwx 1 jenkins jenkins 16 Jan 15 19:47 libcurl.so.4 -> libcurl.so.4.4.0
-rwxr-xr-x 1 jenkins jenkins 2143917 Jan 15 19:47 libcurl.so.4.4.0
drwxr-xr-x 2 jenkins jenkins 4096 Jan 15 19:47 pkgconfig
当./configure的curl版本是7.52.1
时,是否有人可以解释为什么它是4.4.0?是否可以更改它以使其具有正确的版本?
谢谢!
答案 0 :(得分:1)
" 4.4.0"是您系统上安装的libcurl的SONAME。它与版本号不同。
许多libcurl版本创建相同的SONAME版本,只要libcurl保留在SONAME主要版本4上,它是二进制兼容的。这些数字通常允许您保留旧应用程序链接到较旧的库,并使新应用程序与较新的应用程序链接。
因此,您要确定这些文件是从哪个libcurl版本构建的,您需要运行curl_version()
或类似的。或者,如果您确定它们是从相同的源代码安装的,请检查相应的包含标题。 (可选)您有curl-config
或pkg-config
,也可以显示您已安装的卷曲版本。
[引擎盖下,号码" 4.4.0"被设置为" 8:0:4"在lib/Makefile.am中,当在构建过程中生成.so文件时,由libtool转换/使用。]
libcurl的常规ABI rules and guarantees。