在Linux下,编写一个简单的连接池更新MYSQL操作,使用Makefile操作编译文件过程中遇到无法编译的问题,下面是我解决的步骤。
所有头文件和源文件都放在同一目录下:
.
├── Connection.cpp
├── Connection.h
├── ConnectionPool.cpp
├── ConnectionPool.h
├── main.cpp
├── Makefile
└── public.h
编写了简单的Makefile:
main: main.o Connection.o
g++ -o main main.o Connection.o
main.o: main.cpp
g++ -c main.cpp
Connection.o: Connection.cpp
g++ -c Connection.cpp
clean:
rm *.o
rm main
1. 查看是否安装,包含mysql头文件
Connection.h中存在#include<mysql/mysql.h>
,因此不存在没有引用头文件无法使用的问题
安装完全mysql服务,引用自https://blog.csdn.net/SeasonedDriverDG/article/details/129223450:
sudo apt install mysql-client
sudo apt install libmysql++-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install libmysqld-dev
2.动态链接mysql库
很多文章都写了,需要动态链接添加 -lmysqlclient
main: main.o Connection.o
g++ -o main main.o Connection.o -lmysqlclient
main.o: main.cpp
g++ -c main.cpp
Connection.o: Connection.cpp
g++ -c Connection.cpp
clean:
rm *.o
rm main
注意:在Connection.o编译时添加-lmysqlclient仍然会出现编译失败的问题,需要 g++ -o main main.o Connection.o -lmysqlclient