You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何GCC无法识别带数字后缀的.so共享库文件?

GCC无法识别带数字后缀的共享库问题

当共享库文件以数字后缀(如.so.x.x)结尾而非仅.so时,GCC无法找到该库。共享库文件名通常包含主版本号和次版本号两个数字后缀。

原库文件位置

/nix/store/85j54v9a4jg98g6281fdxdvig90m1ywi-msodbcsql17-17.7.1.1-1/lib/libmsodbcsql-17.7.so.1.1

首次尝试操作及错误

执行以下命令:

mkdir /tmp/mslib
cp /nix/store/85j54v9a4jg98g6281fdxdvig90m1ywi-msodbcsql17-17.7.1.1-1/lib/libmsodbcsql-17.7.so.1.1 /tmp/mslib
gcc -L/tmp/mslib -lmsodbcsql-17.7

得到错误输出:

/nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/ld: cannot find -lmsodbcsql-17.7
collect2: error: ld returned 1 exit status

修改库文件名后的尝试

将库文件复制为不带数字后缀的版本:

cp /nix/store/85j54v9a4jg98g6281fdxdvig90m1ywi-msodbcsql17-17.7.1.1-1/lib/libmsodbcsql-17.7.so.1.1 /tmp/mslib/libmsodbcsql-17.7.so

gcc -L/tmp/mslib -lmsodbcsql-17.7

输出结果:

/nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

此次链接器成功找到库!

GCC版本信息

执行命令:

gcc --version

输出:

gcc (Debian 8.3.0-6) 8.3.0

内容的提问来源于stack exchange,提问作者Daniil Iaitskov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:40:41