mysql.h:没有文件或目录

1:mysql.h:没有那个文件或者目录

原:#include<mysql.h>    修改后:#include</usr/include/mysql/mysql.h> 或者#include <mysql/mysql.h>

因为:/usr/inlcude/是gcc默认搜寻头文件的一个路径 而/include下有一个mysql目录名与mysql.h命名空间相同,系统不再向下查询。 即如果mysql目录不叫mysql 叫mysqlnew也不会出现这样的情况,所以在mysql.h前面要加上mysql/指明是哪个子目录下的头文件。

所以在这种情况下修改/etc/ld.so.conf.d/mysqlxxxxxxx下的路径ldconfig也是没用。

还有一个方法就是在gcc编译时候指定头文件的路径:
gcc mysql.c -o exe -I /usr/include/mysql -L /usr/include/mysql -lmysqlclient   :-I 可取 -L指定的还是有问题的(下面讲到)

说不清为什么 gcc的编译问题

2:/usr/bin/ld: cannot find -lmysqlclient
在默认目录或者-L指定的路径下找不到该库
我的问题是因为路径指定的错误:

原:

gcc mysql.c -o exe -I /usr/include/mysql -L /usr/include/mysql-lmysqlclient   :-I 可取 -L指定的还是有问题的(下面讲到)
find -name *mysqlclient*
搜索关于mysqlclient.so相关的库都在/usr/lib64/mysql/下面 所以:
修改后:

gcc mysql.c -o mysql -L /usr/lib64/mysql -lmysqlclient -I  /usr/include/mysql

gcc $(mysql_config --cflags) xxx.c -o xxx $(mysql_config --libs):这句不知道是什么意思 反正这句可以使上面的问题一个都不出现 是mysql编译的一些配置吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值