首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual 2012中从源代码构建MySQL连接器C++ 64位

Visual 2012中从源代码构建MySQL连接器C++ 64位
EN

Stack Overflow用户
提问于 2013-11-29 08:33:49
回答 2查看 5.9K关注 0票数 4

我正在尝试从mySQL Connector C++的源代码中为64位架构构建Visual 2012。我知道它依赖于一些boost头文件和C连接器。运行CMake的会生成一个项目文件,但是该项目文件无法编译,因为一个非常令人困惑的错误列表可能需要对包含文件做些什么,以及一个更大的警告列表。官方网站帮不上什么忙。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-29 08:51:00

为了构建它,您需要有以下内容:

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

当您拥有了所有三个可用时,打开VS2012 x64本机工具命令提示符,并从MySQL C++连接器的源目录发出以下命令:

代码语言:javascript
运行
复制
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 C连接器的MySQL变量。第二个命令调用cmake来准备一个64位的VS项目。MYSQL_LIB_DIR变量似乎有一个问题,并且没有生成它,所以我们需要手动定义它。MYSQL_LIB_DIR的值为MYSQL_DIR,以\LIB结尾。第三个命令是可选的,它将在不打开VS的情况下从命令提示符构建项目。

建议您对变量使用DOS路径。要做到这一点,请导航到要转换为DOS路径并调用for %I in (.) do echo %~sI的目录。它会给你一条转化的道路。

票数 5
EN

Stack Overflow用户

发布于 2015-05-19 07:16:58

这是一项非常艰巨的任务,我花了很多时间来解决这个问题。

这里有两个问题:

  1. 他们提供的C++连接器和MySQL库是在Visual 2010中生成的。因此,我们不能使用它们,因为它是在VS2012下(它提供版本错配错误)
  2. 它们也没有指定编译这些库的确切编译器选项。如果我们的编译器设置是不同的,我们将导致大量的错误(特别是链接器相关的)。

考虑到这些事实,唯一的办法就是建立这些图书馆。构建MySQL是快速的,但构建连接器很少复杂。

以下是我要分享的步骤。在我的例子中,我想静态地将这些库链接到我的项目中,因此我相应地构建了这些库。你可能想要根据你的需要在任何必要的地方做出相关的改变。

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

构建服务器的MySQL步骤:

  1. 下载MySQL源代码。把它们拔出来。在命令提示符下进入解压文件夹。
  2. 创建BLD forder
  3. 通过命令提示符进入BLD文件夹
  4. 跑 制造..。-G“11 2012 Win64” 它将创建MySQL.sln
  5. 在Visual中打开MySQL.sln,只构建'mysqlclient‘库(因为应用程序只需要这样)

这将在MySQL5.6.24\BLD\libmysql\< Configuration >文件夹中构建库,我们在项目中链接该文件夹。

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

  1. 下载mysql-连接器-c++源代码。把它拔出来。在命令提示符下进入解压文件夹。
  2. 创建BLD forder
  3. 通过命令提示符进入BLD文件夹
  4. 运行以下命令(确保在此之前,在发布和调试模式下构建了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
  5. 在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.在“图书馆员”下,->一般将“忽略特定的默认库”保留为空白(对于所有配置)
  6. 只构建‘mysqlcppconn-静态’库项目(因为应用程序只需要这样才能连接到MySQL服务器)

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20281360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档