Debian10下MariaDB C++ Connector编译与使用问题求助
MariaDB C++连接器安装与编译问题解决
1. 头文件目录复制失败的修复
你用install命令复制文件时遇到的omitting directory提示,是因为默认install不会递归处理子目录。只要加个-r参数就能完整复制conncpp目录:
sudo install -r include/mariadb/* /usr/include/mariadb/
这样conncpp.hpp这类子目录里的头文件就能被正确放到系统头文件路径了。
2. 编译命令修正
编译时找不到头文件,除了头文件没放对,还要确保编译器能搜到它们,同时指定库的路径。试试这个编译命令:
g++ -o tasks task.cpp -std=c++11 -I/usr/include/mariadb -L/usr/lib/arm-linux-gnueabihf -lmariadbcpp
-I/usr/include/mariadb:告诉编译器去这个目录找头文件,解决conncpp.hpp找不到的问题-L/usr/lib/arm-linux-gnueabihf:Debian10 ARM架构下系统库的默认位置,libmariadbcpp.so一般在这里-lmariadbcpp:链接MariaDB的C++连接器库
3. Debian下安装MariaDB C++连接器的标准姿势
手动复制文件容易出问题,Debian下直接用包管理器装才靠谱:
sudo apt update sudo apt install libmariadbcpp-dev
这个命令会自动把所有头文件、库文件放到系统正确的路径,还能处理依赖,比手动复制省心多了。
4. 版本兼容性说明
MariaDB 10.3.36和对应的C++连接器完全兼容:
- 10.3系列服务器搭配的是1.0.x版本的C++连接器,两者适配没问题
- Debian10官方源里的
libmariadbcpp-dev会和系统中的MariaDB版本匹配,不用担心兼容性冲突
关于你手动安装的补充
既然手动安装有初步进展,后续可以用install -r代替逐个复制,避免漏掉文件。另外检查下库文件是否存在:
ls /usr/lib/arm-linux-gnueabihf/libmariadbcpp.so
如果找不到这个文件,说明连接器库没装全,优先用包管理器重装,确保依赖完整。
内容的提问来源于stack exchange,提问作者otk
相关产品推荐
相关产品推荐

