这是一项非常艰巨的任务,我花了很多时间来解决这个问题。
这里有两个问题:
- 他们提供的C++连接器和MySQL库是在Visual 2010中生成的。因此,我们不能使用它们,因为它是在VS2012下(它提供版本错配错误)
- 它们也没有指定编译这些库的确切编译器选项。如果我们的编译器设置是不同的,我们将导致大量的错误(特别是链接器相关的)。
考虑到这些事实,唯一的办法就是建立这些图书馆。构建MySQL是快速的,但构建连接器很少复杂。
以下是我要分享的步骤。在我的例子中,我想静态地将这些库链接到我的项目中,因此我相应地构建了这些库。你可能想要根据你的需要在任何必要的地方做出相关的改变。
在继续这些步骤之前,请下载并在您的系统上安装CMake。
构建服务器的MySQL步骤:
- 下载MySQL源代码。把它们拔出来。在命令提示符下进入解压文件夹。
- 创建BLD forder
- 通过命令提示符进入BLD文件夹
- 跑
制造..。-G“11 2012 Win64”
它将创建MySQL.sln
- 在Visual中打开MySQL.sln,只构建'mysqlclient‘库(因为应用程序只需要这样)
这将在MySQL5.6.24\BLD\libmysql\< Configuration >文件夹中构建库,我们在项目中链接该文件夹。
构建连接器的C++步骤:
- 下载mysql-连接器-c++源代码。把它拔出来。在命令提示符下进入解压文件夹。
- 创建BLD forder
- 通过命令提示符进入BLD文件夹
- 运行以下命令(确保在此之前,在发布和调试模式下构建了MySQL服务器。还要确保我们已经下载了Boost源)
制造..。-DMYSQL_INCLUDE_DIR="....\mysql-5.6.24\include“-DMYSQL_LIB_DIR:STRING="..\mysql-5.6.24\BLD\libmysql\Release”-DBOOST_ROOT:STRING="..\Boost\boost_1_54_0“-DMYSQL_CLIENT_STATIC_LINKING=1 -G "Visual 11 2012 Win64”
它将创建MYSQLCPPCONN.sln
- 在Visual中打开MYSQLCPPCONN.sln并对“mysqlcppconn-静态”项目进行更改:
A.在C/C++ ->下,附加的->目录放置在这里(对于所有配置)
nativeapi;..\;....\;..\cppconn;....\cppconn;......\mysql-5.6.24\include;......\mysql-5.6.24\BLD\include;......\Boost\boost_1_54_0
B.在代码生成中,将运行时库更改为多线程(调试或非调试取决于配置),而不是DLL。
C.在“图书馆员->”下,所有选项保留“附加选项”和“忽略特定默认库”为空白(对于所有配置)
D.在“图书馆员”下,->一般将“忽略特定的默认库”保留为空白(对于所有配置)
- 只构建‘mysqlcppconn-静态’库项目(因为应用程序只需要这样才能连接到MySQL服务器)
这将在mysql++-1.1.5\BLD\driver\< Configuration >文件夹中生成库,我们将该文件夹链接到我们的项目中。