繁体   English   中英

MySQL Connector C ++ 64bit从Visual Studio 2012中的源代码构建

[英]MySQL Connector C++ 64bit build from source in Visual Studio 2012

我正在尝试从64位体系结构的Visual Studio 2012中的源代码构建mySQL Connector C ++ 我知道这取决于一些boost头文件和C连接器。 运行CMake会生成一个项目文件,但该项目文件无法编译,因为可能需要对包含文件执行一些非常混乱的错误,以及更大的警告列表。 官方网站没什么帮助。

有人可以列出成功编译C ++连接器的所有步骤吗?

为了构建它,您需要具备以下条件:

  1. 您需要安装MySQL服务器或MySQL C连接器
  2. 已安装Boost C ++库或拥有源文件。 请注意,不需要构建boost,因为您只需要头文件。
  3. 安装CMake 安装CMake时,它会询问您是否希望它包含在PATH变量中,您应该选择yes以便以后使用它更容易。

一旦有了所有三个可用,打开VS2012 x64 Native Tools命令提示符,并从MySQL C ++ Connector的源根目录中,您需要发出以下命令:

set MYSQL_DIR=c:\PROGRA~1\MySQL\MYSQLC~1.1
cmake -G "Visual Studio 11 Win64" ^
      -DBOOST_ROOT:STRING=C:\Users\user\DOWNLO~1\BOOST_~1\BOOST_~1 ^
      -DMYSQL_LIB_DIR:STRING=c:\PROGRA~1\MySQL\MYSQLC~1.1\LIB
devenv.com MySQLCPPCONN.sln /build Release

第一个命令定义MYSQL_DIR变量,该变量指向MySQL服务器或MySQL C Connector的安装。 第二个命令调用cmake来准备一个64位的VS项目。 MYSQL_LIB_DIR变量似乎存在问题并且没有生成,因此我们需要手动定义它。 MYSQL_LIB_DIR的值为MYSQL_DIR ,以\\LIB结尾。 第三个命令是可选的,它将从命令提示符构建项目而不打开VS.

建议您使用DOS路径作为变量。 为此,导航到要转换为DOS路径的目录,并for %I in (.) do echo %~sI调用for %I in (.) do echo %~sI 它会为您提供转换后的路径。

这真是一项艰巨的任务,我花了很多时间搞清楚这一点。

这里有两个问题:

  1. 他们提供的C ++ Connector和MySQL库都是使用Visual Studio 2010生成的。因此我们不能在VS2012下使用它们(它会给出版本不匹配错误)

  2. 他们还没有指定编译这些库的确切编译器选项。 如果我们的编译器设置不同,我们最终会遇到很多(特别是链接器相关的)错误。

考虑到这些事实,唯一的方法是为这些库建立自己。 构建MySQL很快,但构建连接器并不复杂。

以下是我要分享的步骤。 在我的情况下,我想静态地将这些库与我的项目链接,因此我相应地构建了这些库。 您可能希望根据需要在必要时进行相关更改。

在继续执行这些步骤之前,请在您的系统上下载并安装CMake。

构建MySQL服务器的步骤:

  1. 下载MySQL源代码。 提取它们。 在命令提示符下进入解压缩文件夹。

  2. 创建BLD forder

  3. 通过命令提示符进入BLD文件夹

  4.  cmake .. -G "Visual Studio 11 2012 Win64" 

    它将创建MySQL.sln

  5. 在Visual Studio中打开MySQL.sln并仅构建“mysqlclient”库(因为只有这需要应用程序)

这将在我们项目中链接的mysql-5.6.24 \\ BLD \\ libmysql \\ <Configuration>文件夹中构建库。

构建C ++连接器的步骤:

  1. 下载mysql-connector-c ++源代码。 提取它。 在命令提示符下进入解压缩文件夹。

  2. 创建BLD forder

  3. 通过命令提示符进入BLD文件夹

  4. 运行此命令(确保我们在此之前已经在发布和调试模式下构建了MySQL服务器。还要确保我们已经下载了Boost源代码)

     cmake .. -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 Studio 11 2012 Win64" 

    它将创建MYSQLCPPCONN.sln

  5. 在Visual Studio中打开MYSQLCPPCONN.sln并更改'mysqlcppconn-static'项目:

    A.在C / C ++下 - >常规 - >附加包含目录放置此项(适用于所有配置)

      nativeapi;..\\;..\\..\\;..\\cppconn;..\\..\\cppconn;..\\..\\..\\mysql-5.6.24\\include;..\\..\\..\\mysql-5.6.24\\BLD\\include;..\\..\\..\\Boost\\boost_1_54_0 

    B.在Code Genaration中,将运行时库更改为多线程(调试或非调试取决于配置)和NOT DLL

    C.在Librarian下 - >所有选项将“附加选项”和“忽略特定默认库”保留为空白(对于所有配置)

    D.在Librarian下 - >常规将“忽略特定默认库”保留为空白(对于所有配置)

  6. 仅构建'mysqlcppconn-static'库项目(因为只有应用程序才需要连接到MySQL服务器)

这将在我们项目中链接的mysql-connector-c ++ - 1.1.5 \\ BLD \\ driver \\ <Configuration>文件夹中生成库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM