On an Amazon EC2 (uname -r
gives "3.4.37-40.44.amzn1.x86_64", which I hear is based on Cent OS) I tried installing:
yum install mysql
yum install mysql-devel
And even
yum install mysql-libs
(Due to this thread.)
I'm trying to compile a program and link the MySQL libraries to it. This works fine on my Mac, (but the Mac has libmysqlclient.a
). libmysqlclient.a
is absolutely nowhere to be found on this machine. All it has is libmysqlclient.so
, and many versions of it too.
$ sudo find / -name libmysqlclient*
Gives
/usr/lib64/mysql/libmysqlclient_r.so
/usr/lib64/mysql/libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18.0.0
/etc/alternatives/libmysqlclient
/etc/alternatives/libmysqlclient_r
And
ls -l /usr/lib64/mysql
Gives
lrwxrwxrwx 1 root root 34 Apr 11 19:21 libmysqlclient_r.so -> /etc/alternatives/libmysqlclient_r
lrwxrwxrwx 1 root root 32 Apr 11 19:21 libmysqlclient.so -> /etc/alternatives/libmysqlclient
lrwxrwxrwx 1 root root 24 Apr 11 18:24 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
-rwxr-xr-x 1 root root 2983360 Mar 14 10:09 libmysqlclient.so.18.0.0
-rwxr-xr-x 1 root root 11892 Mar 14 09:12 mysqlbug
-rwxr-xr-x 1 root root 7092 Mar 14 10:08 mysql_config
So the only real file is libmysqlclient.so.18.0.0
.
The compiler command:
g++ main.cpp -L/usr/lib64/mysql -lmysqlclient.so.18.0.0
Fails with
/usr/bin/ld: cannot find -lmysqlclient.so.18.0.0
collect2: ld returned 1 exit status
So somebody is lying or I got completely ripped off at the YUM repo and was not given my libmysqlclient.a
like I was supposed to.
(I avoided using the many symlinks on the system so I could eliminate possible issues).