mysql.h:没有文件或目录

来源:互联网 发布:手机淘宝怎么评价 编辑:程序博客网 时间:2024/06/01 08:28

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编译的一些配置吧

原创粉丝点击