linux下c連接mysql問題

 

問題如下:

編譯成功後,運行程序,出現./connect: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

 

.出現上面的錯誤是因爲系統運行的時候沒有找到程序運行所需要的libmysqlclient.so.15運行庫文件,解決方法有兩個:

方法一:直接把libmysqlclient.so.15這個文件拷貝到系統指定的/usr/lib庫文件目錄中。

方法二:設置/etc/ld.so.conf文件,編輯該文件,在文件中加入libmysqlclient.so.15所在目錄,保存退出。需要注意的是,每次改動ld.so.conf之後需要運行ldconfig來確認刷新。

方法三:Add /usr/local/mysql/lib/mysql to you LD_LIBRARY_PATH environment variable

ldconfig使用方法: ldconfig [options] [libs]

命令ldconfig決定位於目錄/usr/lib和/lib下的共享庫所需的運行的鏈接,這些鏈接在命令行上的libs指定並被保存在 /etc/ld.so.conf中。命令ldconfig和動態鏈接/裝載工具ld.so協同工作,一起來創建和維護對最新版本共享庫的鏈接。

ldconfig的兩個選項
      -p:僅打印出文件/etc/ld.so.cache的內容,此文件是ld.so所知道的共享庫的當前列表
      -v:更新/etc/ld.so.cache的內容,列出每個庫的版本號,掃描的目錄和所有創建和更新的鏈接

 

 

附加信息:

在安裝mysql時,運行"./configure" 時指定參數的問題(只介紹一部分,其他的參數請輸入:"./configure --help"來查詢)

./configure --prefix=/usr --sysconfdir=/etc

 

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent 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          read-only architecture-independent data [PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --infodir=DIR          info documentation [PREFIX/info]
  --mandir=DIR           man documentation [PREFIX/man]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章