LoginSignup
19
18

More than 5 years have passed since last update.

「/usr/bin/ld: cannot find -lmysqlclient」が出たときにやったこと

Last updated at Posted at 2013-10-31

はじめに

「gem install mysql2」をする際に「/usr/bin/ld: cannot find -lmysqlclient」というエラーで数時間ハマった。

基本的には

「/usr/bin/ld: cannot find」というエラーは「-l」に続くライブラリをインストールすれば解消するらしい
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a115makeerror.html

ライブラリのインストール

公式
http://dev.mysql.com/doc/refman/4.1/ja/linux-rpm.html

でも、解消されない場合

インストールはされたはずなのに同じエラーが出続ける・・・
原因は、/usr/lib64/にlibmysql関係のファイルが存在しないことだった。
参照されるフォルダには何も変化が無いためエラーが解消できなかったという。

対処手順

参照されるフォルダを確認する

# ls -la /usr/lib64/libmysqlclient*
ls: /usr/lib64/aaa*: そのようなファイルやディレクトリはありません

インストールされた場所を探す

# ls -la /usr/lib64/mysql/libmysqlclient*
-rw-r--r-- 1 root root 15276160  4月 19  2012 /usr/lib64/mysql/libmysqlclient.a
lrwxrwxrwx 1 root root       24 10月 30 17:11 /usr/lib64/mysql/libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root  1511120 11月 30  2008 /usr/lib64/mysql/libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root       16 10月 30 16:30 /usr/lib64/mysql/libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx 1 root root       26 10月 30 17:11 /usr/lib64/mysql/libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root  1518168 11月 30  2008 /usr/lib64/mysql/libmysqlclient_r.so.15.0.0

参照されるフォルダへコピーする

# cp /usr/lib64/mysql/libmysqlclient* /usr/lib64/

追伸

インフラに関する知識がまだまだ足りないと痛感。。
本来ならシンボリックリンクを張った方が良いと思う。

19
18
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18