在 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
应该得到的。
(我避免在系统上使用许多符号链接,以便消除可能的问题)。