undefined reference to `mysql_init‘ 附解决方案

在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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
undefined reference to shm_init'错误是由于编译器无法找到对应的库函数shm_init引起的。要解决这个问题,可以尝试以下几个步骤: 1. 确保你的代码包含了正确的头文件,即包含shm_init函数的头文件。 2. 检查你的代码是否正确地链接了对应的库文件。你可以使用-l参数来链接库文件,比如-lpthread用于链接pthread库。在编译时,确保加上正确的链接参数。 3. 确保你的系统上已经安装了包含shm_init函数的库文件。如果没有安装,可以尝试安装相关的开发包。 总结起来,要解决undefined reference to shm_init'错误,你需要确认代码包含正确的头文件,正确地链接库文件,并确保相关的库文件已经安装在系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux C语言编译报错:undefined reference to `sem_init‘(编译时加 -lpthread)](https://blog.csdn.net/Dontla/article/details/126366430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [linux下编译c代码时error:undefined reference to sem_init sem_wait 解决方法之一](https://blog.csdn.net/loosen17/article/details/50524743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值