最近在看mysql 的api。用C 写和mysql 交互的代码,用的是xampp-linux-devel-1.7 包,全部的lib 和include 都放在了/opt 下面。编译时指定include 和lib 搜索位置都没问题。可在程序运行时 ./connect
时,出错:
./connect: error while loading shared libraries: libmysqlclient.so.15.0.0:cannot open shared object file: No such file or directory
查了一下,是ld(动态装载器)找不到libmysqlclient.so.15.0.0 的所在位置。解决办法:
sudo touch /etc/ld.so.conf.d/mysql.conf
sudo gedit /etc/ld.so.conf.d/mysql.conf
在里面写上libmysqlclient.so.15.0.0 所在的目录位置就可以,比如:/opt/lampp/lib/mysql 保存后,执行 sudo ldconfig -v
就可以了。
.so 动态库的解决办法都一样 :)