问题描述
为了使mac下Xcode建立的c++项目能操作mysql数据库,找遍了国内国外各种教程,踩坑无数,终于摸索出了环境搭建的方法。
心得是,官方文档永远是最好的教程:
5.1 Building Connector/C++ Applications: General Considerations
当然其它各类博客、Stack Overflow上的帖子也或多或少提供了些线索,但无一例外都是不全面的!
摸索了整整半天,吐血探索出来的完整环境搭建步骤整理如下。
如果不在意原理,只想按步骤搭环境,可以直接看最后的总结。
环境需求
参考官方文档,配置环境有以下需求:
Build Tools and Configuration Settings
- C++11 Support:编译器需开启
-std=c++11选项 - Connector/C++ Header Files:头文件搜索路径需包含
ConnectorC++安装路径/include - Boost Header Files:在Unix系统中,需要
Boost 1.59.0版以上的库, 头文集搜索路径需包含boost所在位置(实际上没有也行) - Link Libraries:使用
OpenSSL编译时需要引用OpenSSL动态库 - Runtime Libraries:如果使用了动态库编译,需要在工程中和可执行文件处均放置
Connector/C++、OpenSSL等运行时库 - Using the Connector/C++ Dynamic Library:使用动态库时,用到
libmysqlcppconn8.A.dylib(macOS),A代表版本名 - Using the Connector/C++ Static Library:使用静态库时,用到
libmysqlcppconn8-static.a(Unix, macOS)
第6步,使用动态库的Makefile文件如下:
MYSQL_CONCPP_DIR = Connector/C++ installation location
CPPFLAGS = -I $(MYSQL_CONCPP_DIR)/include -L $(MYSQL_CONCPP_DIR)/lib64
LDLIBS = -lmysqlcppconn8
CXXFLAGS = -std=c++11
app

本文详述了在Mac环境下,使用Xcode搭建C++项目,通过MySQL Connector/C++ 8.0连接MySQL数据库的全过程。包括安装Connector/C++,解决' mysql.h '找不到、符号未定义等问题,以及处理dyld: Library not loaded: libssl.1.1.dylib的运行时错误。遵循官方文档与逐步解决报错,最终实现成功连接。
最低0.47元/天 解锁文章
2881





