在Amazon EC2上(uname -r给出“3.4.37-40.44.amzn1.x86_64”,我听说它基于Cent OS)我尝试安装:
yum install mysql
yum install mysql-devel
乃至
yum install mysql-libs
我正在尝试编译程序并将MySQL库链接到它.这在我的Mac上工作正常,(但Mac有libmysqlclient.a). libmysqlclient.a绝对无法在这台机器上找到.它只有libmysqlclient.so,以及它的许多版本.
$sudo find / -name libmysqlclient*
给
/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
和
ls -l /usr/lib64/mysql
给
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
所以唯一真正的文件是libmysqlclient.so.18.0.0.
编译器命令:
g++ main.cpp -L/usr/lib64/mysql -lmysqlclient.so.18.0.0
失败了
/usr/bin/ld: cannot find -lmysqlclient.so.18.0.0
collect2: ld returned 1 exit status
所以有人在说谎,或者我在YUM回购中完全被扯掉了,并没有得到我想要的libmysqlclient.a.
(我避免在系统上使用许多符号链接,因此我可以消除可能的问题).