今天在编译代码的时候出现 “/usr/bin/ld: cannot find -luuid” 错误,在网上找了些资料发现是 gcc编译时找不到链接的库,解决办法如下:
1. 在终端下运行命令: locate libuuid
说明:出现的错误是luuid,为什么在locate后面是 libuuid,这是由于链接库的命名造成的。假如出现了 “/usr/bin/ld: cannot find -lltdl”,则在终端输入:locate libltdl,即把 -l 去掉。
我的系统中运行 locate libuuid 命令后 ,出现的内容如下:
/lib/libuuid.so.1
/lib/libuuid.so.1.3.0
/usr/i586-mingw32msvc/lib/libuuid.a
/usr/lib/wine/libuuid.a
/usr/share/doc/libuuid-perl
/usr/share/doc/libuuid1
/usr/share/doc/libuuid-perl/changelog.Debian.gz
/usr/share/doc/libuuid-perl/changelog.gz
/usr/share/doc/libuuid-perl/copyright
/usr/share/doc/libuuid1/changelog.Debian.gz
/usr/share/doc/libuuid1/changelog.gz
/usr/share/doc/libuuid1/copyright
/var/lib/libuuid
/var/lib/dpkg/info/libuuid-perl.list
/var/lib/dpkg/info/libuuid-perl.md5sums
/var/lib/dpkg/info/libuuid1.list
/var/lib/dpkg/info/libuuid1.md5sums
/var/lib/dpkg/info/libuuid1.postinst
/var/lib/dpkg/info/libuuid1.postrm
/var/lib/dpkg/info/libuuid1.shlibs
/var/lib/dpkg/info/libuuid1.symbols
申明: 若是没有装uuid的库是不会出现上面红色部分的,若是没装uuid库,打开新立得安装uuid有关的库,即可解决!
2.创建相应的链接文件。
注意到其中的/lib/libuuid.so.1, /lib/libuuid.so.1.3.0,我选择/lib/libuuid.so.1 并为其创建链接文件,终端命令如下:
sudo ln -sf /lib/libuuid.so.1 /usr/lib/libuuid.so
3.命令成功后,会在 /usr/lib 目录下生成 libuuid.so
再次编译代码,成功!
上述方法应该可以解决所有 /usr/bin/ld: cannot find -lxxx 错误,自己未验证,因为以前没遇到类似的错误!