您只需要在 Windows 上从源代码构建连接器/ODBC 即可修改源代码或安装位置。如果您不确定是否从源安装,请使用 第 4.1 节“在 Windows 上安装连接器/ODBC”中详述的二进制安装。
在 Windows 上从源代码构建连接器/ODBC 需要许多不同的工具和包:
MDAC,来自 https://www.microsoft.com/en-in/download/details.aspx?id=21995的 Microsoft 数据访问 SDK 。
合适的 C++ 编译器,例如 Microsoft Visual C++ 或 Microsoft Visual Studio 2015 或更高版本中包含的 C++ 编译器。编译Connector/ODBC 5.3可以使用VS 2013。
制作。
MySQL 客户端库和包含来自 MySQL 8.0 或更高版本(用于连接器/ODBC 8.0)或 MySQL 5.7(用于连接器/ODBC 5.3)的文件。这是必需的,因为连接器/ODBC 使用旧版本库中不存在的调用和结构。要获取客户端库和包含文件,请访问 https://mysql.net.cn/downloads/。
构建步骤
为 Visual Studio 工具链设置环境变量。Visual Studio 包括一个批处理文件来为您设置这些,并安装一个开始菜单快捷方式,该快捷方式打开一个命令提示符,其中设置了这些变量。
设置MYSQL_DIR
为MySQL服务器安装路径,同时使用短格式文件名。例如:
C:\> set MYSQL_DIR=C:\PROGRA~1\MySQL\MYSQLS~1.0
通过从源根目录(在命令提示符窗口中)执行以下命令, 使用cmake命令行工具 构建连接器/ODBC :
C:\> cmake -G "Visual Studio 12 2013"
这会生成一个项目文件,您可以使用 Visual Studio 打开该文件,或者使用以下任一命令从命令行生成:
C:\> devenv.com MySQL_Connector_ODBC.sln /build Release
从源代码构建 Connector/ODBC 时,默认选择与 MySQL 客户端库的动态链接——即默认选择
MYSQLCLIENT_STATIC_LINKING
cmake选项FALSE
(但是,来自 Oracle 的 Connector/ODBC 的二进制分发静态链接到客户端库)。如果要静态链接到 MySQL 客户端库,请将选项设置
MYSQLCLIENT_STATIC_LINKING
为
TRUE
,并使用该
MYSQLCLIENT_LIB_NAME
选项为静态链接提供客户端库的名称:
C:\> cmake -G "Visual Studio 12 2013" -DMYSQLCLIENT_STATIC_LINKING:BOOL=TRUE \
DMYSQLCLIENT_LIB_NAME=client_lib_name_with_extension
还可以使用该MYSQLCLIENT_LIB_NAME
选项动态链接到除
libmysql.dll
. cmake
在选项指定的位置下查找客户端库
MYSQL_LIB_DIR
;如果未指定该选项,cmake将在该选项指定的文件夹内的默认位置下查找
MYSQL_DIR
。
自 Connector/ODBC 8.0.11 起,用于BUNDLE_DEPENDENCIES
与连接器一起安装外部库运行时依赖项,例如 OpenSSL。对于从 MySQL 客户端库继承的依赖项,这仅在这些依赖项与客户端库本身捆绑在一起时才有效。
INFO_SRC
:此文件提供有关产品版本和生成分发的源存储库的信息。在 Connector/ODBC 8.0.14 中添加。
可以选择将 Connector/ODBC 静态链接(相当于 Visual Studio 中的 /MT 编译器选项)或动态链接(相当于 Visual Studio 中的 /MD 编译器选项)到 Visual C++ 运行时。默认选项是动态链接;如果你想静态链接,设置选项
STATIC_MSVCRT:BOOL=TRUE
,即:
C:\> cmake -G "Visual Studio 12 2013" -DSTATIC_MSVCRT:BOOL=TRUE
STATIC_MSVCRT
期权与
期权MYSQLCLIENT_STATIC_LINKING
相互独立;也就是说,您可以将连接器/ODBC 动态链接到 Visual C++ 运行时,同时静态链接到 MySQL 客户端库,反之亦然。但是,如果将连接器/ODBC 动态链接到 Visual C++ 运行时,则还需要链接到本身动态链接到 Visual C++ 运行时的 MySQL 客户端库;同样,将连接器/ODBC 静态链接到 Visual C++ 运行时需要链接到 MySQL 客户端库,该库本身静态链接到 Visual C++ 运行时。
要编译调试版本,请设置cmake构建类型,以便使用正确版本的 MySQL 客户端库;此外,由于 Oracle 构建的 MySQL C 客户端库未使用调试选项构建,因此在以调试模式构建连接器/ODBC 时链接到它时,请使用该
WITH_NODEFAULTLIB
选项告诉
cmake忽略默认的非调试 C++ 运行时:
C:\> cmake -G "Visual Studio 14 2015" -DWITH_DEBUG=1 -DWITH_NODEFAULTLIB=libcmt
然后使用以下命令创建调试版本:
C:\> devenv.com MySQL_Connector_ODBC.sln /build Debug
完成后,可执行文件位于
bin/
和lib/
子目录中。
请参阅 第 4.1.1 节“使用压缩 DLL 包安装 Windows 连接器/ODBC 驱动程序” ,了解如何通过将二进制文件复制到正确位置并使用 ODBC 管理器注册连接器/ODBC 来完成安装。