MySQL接口调用之gcc编译报错mysql.h:No Such file or directory

这两天在学习总结MySQL的C API的过程中,写了几个小的示例。但是,在编译的阶段中总是出错,编译无法通过。现解决问题,并总结如下。

1.问题再现

写完源程序之后,键入如下命令,提示找不到mysql.h头文件:

于是,上网查阅相关资料,给出的解决方案层出不穷。说是因为电脑中没有安装mysql,或是没有安装mysql库等等,于是按照其中一个感觉挺靠谱的方法使用命令yum install libmysql++-dev去安装mysql库:

结果提示没有找到这个包,这个方法尝试失败。

2.解决之路

因为我记得我的Linux中是有mysql相关库文件的,于是使用如下find命令,找到了mysql.h头文件的所在路径:

找到头文件所在路径之后,喜出望外,这下应该没问题了吧,执行如下编译命令:

结果仍然报错,不过值得庆幸的一点是第一个错误没有再出现。

这是因为没有链接到lmysqlclient库导致的,于是修改编译命令,继续尝试:

结果再次报错,提示找不到库文件mysqlclient。

我们知道,存放库文件的目录lib和存放头文件的目录include一般是放在同一个目录下的,于是返回之前找到mysql.h头文件的路径,发现lib目录下有如下动态库和静态库:

这些动态库和静态库正是我们程序在链接阶段需要链接的库文件,于是修改编译命令如下,再次尝试:

无报错,编译通过。

附:关于find命令和gcc编译器使用的相关内容,可以参考我的其他博文。

发表评论

电子邮件地址不会被公开。 必填项已用*标注