在Linux下C连接MySQL出现问题如下
编译成功后运行程序出现/connect: error while loading shared libraries: libmysqlclientso: cannot open shared object file: No such file or directory
出现上面的错误是因为系统运行的时候没有找到程序运行所需要的libmysqlclientso运行库文件解决方法有两个
方法一直接把libmysqlclientso这个文件拷贝到系统指定的/usr/lib库文件目录中
方法二设置/etc/nf文件编辑该文件在文件中加入libmysqlclientso所在目录保存退出需要注意的是每次改动nf之后需要运行ldconfig来确认刷新
方法三Add /usr/local/mysql/lib/mysql to you LD_LIBRARY_PATH environment variable
ldconfig使用方法 ldconfig [options] [libs]
命令ldconfig决定位于目录/usr/lib和/lib下的共享库所需的运行的链接这些链接在命令行上的libs指定并被保存在 /etc/nf中命令ldconfig和动态链接/装载工具ldso协同工作一起来创建和维护对最新版本共享库的链接
ldconfig的两个选项
p仅打印出文件/etc/ldsocache的内容此文件是ldso所知道的共享库的当前列表
v更新/etc/ldsocache的内容列出每个库的版本号扫描的目录和所有创建和更新的链接
附加信息
在安装mysql时运行/configure 时指定参数的问题(只介绍一部分其他的参数请输入/configure help来查询)
/configure prefix=/usr sysconfdir=/etc
Installation directories:
prefix=PREFIX install architectureindependent files in PREFIX
[/usr/local]
execprefix=EPREFIX install architecturedependent files in EPREFIX
[PREFIX]
By default `make install will install all the files in
`/usr/local/bin `/usr/local/lib etc You can specify
an installation prefix other than `/usr/local using `prefix
for instance `prefix=$HOME
Fine tuning of the installation directories:
bindir=DIR user executables [EPREFIX/bin]
sbindir=DIR system admin executables [EPREFIX/sbin]
libexecdir=DIR program executables [EPREFIX/libexec]
datadir=DIR readonly architectureindependent data [PREFIX/share]
sysconfdir=DIR readonly singlemachine data [PREFIX/etc]
sharedstatedir=DIR modifiable architectureindependent data [PREFIX/com]
localstatedir=DIR modifiable singlemachine data [PREFIX/var]
libdir=DIR object code libraries [EPREFIX/lib]
includedir=DIR C header files [PREFIX/include]
oldincludedir=DIR C header files for nongcc [/usr/include]
infodir=DIR info documentation [PREFIX/info]
mandir=DIR man documentation [PREFIX/man]