如何手动将.h文件导入系统库?

时间:2017-08-29 15:07:00

标签: mysql c macos static-libraries include-path

我有一些#include文件<mysql/mysql.h>的C代码。我在Mac上运行,无法弄清楚如何安装mysql(运行在SO上找到的解决方案后,mysql目录甚至不存在于系统库中)。我能够从源代码下载MySQL,现在我在源代码的“include”目录中有一个mysql.h文件。

但是,将此文件单独移动到系统库中显然不会使我的程序正常工作。我希望我需要编译库(我已经完成),并将二进制文件移动到某处,以便链接到我的程序。

根据@ RustyX的建议,我安装了Mac MySQL软件包。这会将mysql.h的副本放入/usr/local/mysql-5.7.19-macos10.12-x86_64/include/目录。但是:

1)我正在使用gcc来编译.c文件。我不确定如何配置gcc以包含相关目录。我试过了 -L(directory path) - 安装的Mac MySQL软件包和我下载的MySQL源代码 - 但是我收到以下错误:

ld: library not found for -lmysqlclient

我会为mysqlclient添加另一条路径吗?还是要安装另一个包?

2)即使我确实包含它,它仍然找不到文件,因为被叫文件名是<mysql/mysql.h>,它找到的文件名是<include/mysql.h>。由于该文件由其他人使用,因此将include目录重命名为mysql是最佳操作方法吗?或者更改.c文件中的路径,然后每次在提交之前将其更改回来?

1 个答案:

答案 0 :(得分:0)

您是否尝试过这样的声明,

#include <mysql.h> //in your program

编译并运行

gcc -w -c -g -I/usr/include/mysql filename.c
gcc -o filename filename.o -L/usr/lib64/mysql -lmysqlclient
./filename (input params)