最近使用C开发一个访问MariaDB数据库的程序,用到了MariaDB官方提供的Connector/C。刚开始不会使,在网上查找资料,说安装开发包后按下述方法编译即可。但尝试过后,发现无法编译通过。
网上的方法:
1.安装mariadb开发包
yum install -y mariadb-devel
2.编译:gcc test.c -lmysqlclient
结果:
分析错误原因:
网上的运行环境是centos,而我的是debian,两者之间可能在安装开发包时有区别,故此人家的可以,而我的不可以。所以只好到官网上看看如何解决。
MariaDB Connector/C的官网地址:https://mariadb.com/docs/clients/mariadb-connectors/connector-c/
首先,在Debian上安装Connector/C
sudo apt install libmariadb3 libmariadb-dev
其次,查找编译方法,在官网上找到如下内容:
即:使用mariadb_config --include --libs命令可确定编译时的参数。
执行此命令:
然后,将上述命令的结果写入到我的Makefile中进行测试
CPP = g++
INCLUDES = -I/usr/include/mariadb -I/usr/include/mariadb/mysql
LDFLAGS += -L/usr/lib/x86_64-linux-gnu/ -lmariadb -lpthread
all: test
test: test.o
$(CPP) -o test test.o $(LDFLAGS)
test.o: test.c
$(CPP) -c test.c $(INCLUDES)
clean:
rm -f *.o
rm -f test
编译通过
swaaa@swAAA:~/MariaDB$ make
g++ -c test.c -I/usr/include/mariadb -I/usr/include/mariadb/mysql
g++ -o test test.o -L/usr/lib/x86_64-linux-gnu/ -lmariadb -lpthread