Mac OS X 使用xcode编写连接mysql的C程序

来源:互联网 发布:java token编译原理 编辑:程序博客网 时间:2024/06/07 12:34

1. 下载并安装Connector/C

1.1 在https://dev.mysql.com/downloads/connector/c/ 下载mac os x的Connector/C,本文下载的是 mysql-connector-c-6.1.11-macos10.12-x86_64
1.2安装Connector/C,默认安装路径为 /usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64

2. 获取配置信息

在终端运行
/usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/bin/mysql_config --libs
会输出以下信息
/usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/lib -l

3. 动态链接libmysqlclient.18.dylib

将libmysqlclient.18.dylib链接到/usr/lib目录下,在终端输入:

$ cd /usr/lib$ sudo ln -fs /usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/lib/libmysqlclient.18.dylib libmysqlclient.18.dylib

4. 配置Xcode

4.1 打开Xcode,新建一个命令行项目(command line)
4.2 配置项目属性(Building Settings)
4.2.1 在Other Linker Flags里输入
-L/usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/lib -lmysqlclient -lz -lm
4.2.2 在Header Search Paths里输入
/usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/include
4.2.3 在Library Search Paths里输入
/usr/local/mysql-connector-c-6.1.11-macos10.12-x86_64/lib

5. 运行示例代码

#include <stdio.h>#include <mysql.h>int main(int argc, const char * argv[]){    MYSQL *connection, mysql;    mysql_init(&mysql);    connection = mysql_real_connect(&mysql,"localhost","root","123456","Study",0,0,0);    if (connection == NULL)    {        printf("连接失败:%s\n", mysql_error(&mysql));    }    else    {        printf("连接成功, 服务器版本: %s, 客户端版本: %s.\n", MYSQL_SERVER_VERSION, mysql_get_client_info());    }    mysql_close(&mysql);    return 0;}

运行结果为
这里写图片描述
说明连接成功。
第一次进行上述操作时,直接很顺利的完成了:)

(以下为我第二次进行上述操作时遇到的问题和尝试的解决方法)

1. 如果出现 dyld: Library not loaded: libmysqlclient.18.dylib错误,表示没有将mysql的动态库链接到/usr/lib目录下。说明第3步出现问题。

2. 如果第3步出现 operation not permitted , 请接着往下看

第一种方法
* 1.重启Mac
* 2.按住command + R 进入恢复模式
* 3.在实用工具中找到终端 输入 csrutil disable 关闭Rootless 输入csrutil enable 开启Rootless
* 4.重启Mac

第二种方法(本机适用方法)
在终端输入命令

mkdir -p /usr/local/lib   ln -s /usr/local/mysql/lib/libmysql* /usr/local/lib

(第一句执行时可能报错为权限不足,则改为sudo mkdir -p /usr/local/lib)

参考博文链接

https://lorui.com/mac-os-x-xcode-mysql-c.html
http://blog.csdn.net/a1610770854/article/details/51100479
http://blog.csdn.net/u010499721/article/details/49048643

原创粉丝点击