/usr/bin/ld: cannot find -lxxx |
|---|
collect2: error: ld returned 1 exit status |
|---|
ld 找不到指定的库 libxxx.so 或 libxxx.a
-lxxx实际上对应libxxx.so或libxxx.a文件
dpkg -l | grep libxxx |
|---|
sudo apt install libxxx-dev |
|---|
rpm -qa | grep libxxx |
|---|
sudo yum install libxxx-devel |
|---|
注意:编译时一般需要 开发包(
-dev/-devel),而不仅是运行时库
find /usr/lib /usr/local/lib -name "libxxx*" |
|---|
/usr/lib/x86_64-linux-gnu/libxxx.so |
|---|
-L 参数告诉链接器库所在目录:g++ main.o -L/usr/lib/x86_64-linux-gnu -lxxx -o main |
|---|
-lxxx → libxxx.so 或 libxxx.asudo ln -s /path/to/libxxx.so.1 /usr/lib/libxxx.so |
|---|
sudo ldconfig |
|---|
sudo ldconfig |
|---|
/etc/ld.so.conf 或 /etc/ld.so.conf.d/ 下包含库目录# 正确 |
|---|
g++ main.o -lxxx -lother -o main |
|---|
# 错误 |
|---|
g++ -lxxx main.o -o main |
|---|
libxxx.a:静态库libxxx.so:动态库.so,编译器默认查找 .so,如果缺失可:sudo apt install libxxx-dev # 包含 .so 文件 |
|---|
libxxx-dev / libxxx-devel)-L 指定库目录sudo ldconfig 更新缓存💡 小技巧:
apt-file search libxxx.so 查找提供该库的包g++ main.o /home/user/libs/libxxx.so -o main |
|---|
https://www.52runoob.com/archives/6473
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。