mysql - libmysqlclient_r.a 没有生成

标签 mysql database linux cmake mysql-connector

我已经下载了 mysql-connector-c-6.0.2。我使用以下命令构建它:

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=<install_dir_path>
make
make install

这将创建以下库文件:

libmysqlclient.a  libmysqlclient_r.so  libmysqlclient.so  libmysql.so  libmysql.so.16  libmysql.so.16.0.0

这不会生成 libmysqlclient_r.a。如何启用 libmysqlclient_r.a 的生成?

预先感谢您的帮助。

更新:

libmysqlclient_r.so 实际上是指向 libmysql.so 的符号链接(symbolic link)(libmysqlclient_r.so 和 libmysqlclient.so 都是指向 libmysql.so 的符号链接(symbolic link)。所以它们是相同的)。可以通过从 libmysql/CMakeLists.txt 中的以下行中删除 SHARED 关键字来生成静态库 (libmysql.a):

ADD_LIBRARY(libmysql          SHARED ${CLIENT_SOURCES} libmysql.def)

最佳答案

如果它不是生成的,那么它是开发人员有意完成的。

检查一些构建选项,也许有启用 libmysqlclient_r 静态构建的选项。如果不是 - 您必须在 CMakeLists.txt 之一中找到它的目标声明并调整它以启用静态构建。

关于mysql - libmysqlclient_r.a 没有生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292173/

相关文章:

php - 触发两个表以获取主键(自动增量)到第三个链接表mysql

python - 仅使用 Python 访问 Linux 中的 SMART 属性?

mysql - 有没有人有充分的证据证明 CHAR 比 VARCHAR 快?

php mysql : delete a special character from the database

mysql - 分块导出亿条记录的MySQL表?

mysql - 在没有主键的情况下删除 MySQL 数据库中的重复条目

database - 什么是最后写入胜利?

linux - Tcl 嵌套循环 : wrong # args: should be "for start test next command"

linux - 如何在 linux 中用不同的字符串替换相同的事件

java - MySQL 连接到 java 应用程序