Drogon无法在Fedora上检测到MySQL(未找到)
我正在尝试使用Drogon构建一个带MySQL支持的C++后端,但Drogon在 CMake配置阶段无法检测到MySQL。
环境
- Fedora(最新版本)
- GCC 15.2.1
- CMake(近期版本)
- Drogon 1.9.12
问题
在为Drogon运行CMake时:
cmake ..
我得到:
-- MySql was not found.
MySQL安装
我使用以下方式安装了MySQL:
sudo dnf install mysql-community-devel
客户端库存在:
ls /usr/lib64/mysql/libmysqlclient.so
输出:
/usr/lib64/mysql/libmysqlclient.so
pkg-config
可以通过pkg-config看到MySQL:
pkg-config --libs mysqlclient
输出:
-L/usr/lib64/mysql -lmysqlclient
头文件
头文件位于:
/usr/include/mysql
然而,我怀疑这可能不是正确的MySQL头文件。
例如:
grep -R "mysql_real_query_start" /usr/include/mysql
返回的是空的。
我尝试了什么
我尝试了几种做法:
- 重新安装MySQL开发包
- 移除与MariaDB相关的包
- 在CMake中强制指定MySQL路径
cmake .. \
-DMYSQL_INCLUDE_DIR=/usr/include/mysql \
-DMYSQL_LIBRARIES=/usr/lib64/mysql/libmysqlclient.so
结果:
MySql was not found.
使用MySQL tarball(自定义头文件/库)
cmake .. \
-DCMAKE_INCLUDE_PATH=~/Downloads/mysql/include \
-DCMAKE_LIBRARY_PATH=~/Downloads/mysql/lib
仍然:
MySql was not found.
尝试禁用MariaDB检测
cmake .. -DUSE_MYSQL=ON -DUSE_MARIADB=OFF
结果:
USE_MARIADB not used
MySql was not found.
额外观察
有一段时间Drogon检测到的是MariaDB:
-- Ok! We find mariadb!
但编译时出现了类似的错误:
mysql_real_query_start not declared
MYSQL_WAIT_READ not declared
提问
在Fedora上让Drogon正确检测到MySQL的正确方法是什么?
- MariaDB会不会干扰MySQL的检测?
- Fedora的 MySQL头文件与Drogon不兼容吗?
- Drogon的 MySQL检测是否存在已知问题?
预期结果
CMake应该检测到MySQL,并在Drogon中启用MySQL支持。
解决方案
我设法解决了:
sudo systemctl stop mariadb
sudo dnf remove mariadb-server mariadb-client mariadb-common
sudo dnf autoremove
sudo dnf update
sudo dnf install mysql-server
sudo dnf install mariadb-devel
之后,重新编译并安装Drogon。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。