gpt4 book ai didi

c++ - API 稳定的方式自动链接到 Debian 中的 MySQL 或 MariaDB 以实现向后兼容性

转载 作者:行者123 更新时间:2023-11-30 21:22:05 25 4
gpt4 key购买 nike

我从 Debian Jessie 升级到 Debian Stretch,现在发现 MariaDB 已经取代了 MySQL,这很好。

幸运的是,在 C++ 上,MariaDB 客户端仍然可以访问

#include <mysql/mysql.h>

但是,链接是不同的。以前是用-lmysqlclient链接,现在必须链接到-lmariadbclient

我的程序必须同时适用于两者。所以我的问题是:有没有办法检查 MySQL 是否可用,如果不可用,则链接到 MariaDB?

我在相关项目中使用qmakecmake。请指教。

最佳答案

对于cmake,您可以简单地使用:

    find_library( MYSQL_LIBRARY
NAMES "mysqlclient" "mysqlclient_r"
PATHS "/lib/mysql"
"/lib64/mysql"
"/usr/lib/mysql"
"/usr/lib64/mysql"
"/usr/local/lib/mysql"
"/usr/local/lib64/mysql"
"/usr/mysql/lib/mysql"
"/usr/mysql/lib64/mysql" )

然后检查它:

if(MYSQL_LIBRARY) {
...
}

比如github中的例子:FindMYSQL(RenatoUtsch)FindMySQL(mloskot) .


对于qmake,我发现的唯一一件事就是检查这样的典型位置:

!exists("/foo/bar/baz.so"):!exists("/hello/world/baz.so"):...: message("...")

关于c++ - API 稳定的方式自动链接到 Debian 中的 MySQL 或 MariaDB 以实现向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45648132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com