本节介绍如何使用 Microsoft Visual Studio 为 Windows 构建连接器/C++ 应用程序。有关一般的应用程序构建信息,请参阅 第 5.1 节,“构建连接器/C++ 应用程序:一般注意事项”。
使用 Microsoft Windows 的开发人员必须满足以下要求:
构建连接器/C++ 应用程序需要 Microsoft Visual Studio 2015。
您的应用程序应使用与 Connector/C++ 相同的链接器配置。例如,使用
/MD
、/MDd
、/MT
或 之一/MTd
。
Connector/C++ 可作为动态或静态库与您的应用程序一起使用。本节介绍如何将库链接到您的应用程序。
链接动态库
要使用动态库文件(.dll
扩展名),请将您的应用程序与.lib
导入库链接。在运行时,应用程序必须有权访问该.dll
库。
下表指示了哪些导入库和动态库文件可用于连接器/C++。LIB
表示连接器/C++ 安装库路径名。
链接静态库
要使用静态库文件(.lib
扩展名),请将您的应用程序与库链接。
静态库名称为
,其中LIB
/mysqlcppconn-static.libLIB
表示Connector/C++安装库路径名。
构建应用程序以使用动态库或静态库的初始步骤是相同的。一些额外的步骤会有所不同,具体取决于您构建的应用程序是使用 动态库 还是 静态 库。
在 Visual Studio 中启动一个新的 Visual C++ 项目。
-
在工具栏上的构建配置下拉列表中,将配置从默认选项 Debug更改为Release。
从主菜单中选择项目、 属性。这也可以使用热键ALT + F7访问。
在Configuration Properties下,打开树视图。
在树视图中 选择C/C++和General 。
在Additional Include Directories 文本字段中,添加
include/
Connector/C++ 目录(它应该位于 Connector/C++ 安装目录中)。如果构建应用程序需要 Boost,还要添加 Boost 库的根目录(请参阅 第 5.1 节“构建连接器/C++ 应用程序:一般注意事项”)。在树视图中,打开Linker、 General、Additional Library Directories。
在Additional Library Directories 文本字段中,添加 Connector/C++ 库目录(它应该位于 Connector/C++ 安装目录中)。库目录名称以
lib64
(对于 64 位版本)或lib
(对于 32 位版本)结尾。
其余步骤取决于您构建的应用程序是使用 Connector/C++ 动态库还是静态库。
如果您要构建应用程序以使用连接器/C++ 动态库,请执行以下步骤:
打开Linker, 在Property Pages对话框 中输入。
将适当的导入库名称添加到 附加依赖项文本字段中(请参阅 将连接器/C++ 链接到应用程序)。
-
选择要链接到的 C++ 运行时库。在 Property Pages对话框中,在树视图中打开 C++和Code Generation ,然后 按照以下规则 为Runtime Library选择适当的选项:
对于 1.1.9 版及更高版本
/MD
:通过选择编译器选项链接到 C++ 运行时库的动态版本此外,运行客户端应用程序的目标主机必须安装 Visual C++ Redistributable for Visual Studio。所需版本是 VC++ Redistributable 2015 for Connector/C++ 1.1.11 及更高版本(商业和社区构建),VC++ Redistributable 2013 for Connector/C++ 1.1.11 之前的版本(仅限社区构建)。对于 1.1.8 版及之前
/MD
的版本:通过选择编译器选项 链接到 C++ 运行时库的动态版本
如果您使用的是 Oracle 构建的连接器/C++,请不要使用 or选项
/MTd
。/MDd
有关解释,请参阅此讨论: Connector/C++ and Application Build Configuration Must Match。 -
将适当的动态库复制到与应用程序可执行文件相同的目录(请参阅 将连接器/C++ 链接到应用程序)。或者,使用扩展
PATH
环境变量SET PATH=%PATH%;C:\path\to\cpp
,或将动态库复制到 Windows 安装目录,通常是C:\windows
.动态库必须与应用程序可执行文件位于同一目录中,或者位于系统路径中的某个位置,以便应用程序可以在运行时访问 Connector/C++ 动态库。
如果您正在构建应用程序以使用静态库,请按照以下步骤操作:
打开Linker, 在Property Pages对话框 中输入。
将适当的静态库名称添加到 附加依赖项文本字段中(请参阅 将连接器/C++ 链接到应用程序)。
-
要编译与连接器库静态链接的代码,请定义一个宏来调整头文件中的 API 声明以供静态库使用。默认情况下,定义宏以声明与调用 DLL 的应用程序兼容的函数。
在Project的 Properties树视图中,在 C++下的Preprocessor下,将适当的宏输入到Preprocessor Definitions文本字段中:将
CPPCONN_PUBLIC_FUNC
宏定义为空字符串。为确保这一点,请将宏定义为CPPCONN_PUBLIC_FUNC=
,而不是CPPCONN_PUBLIC_FUNC
。 -
选择要链接到的 C++ 运行时库。在 Property Pages对话框中,在树视图中打开 C++和Code Generation ,然后 按照以下规则 为Runtime Library选择适当的选项:
对于 1.1.9 版及更高版本
/MD
:通过选择编译器选项链接到 C++ 运行时库的动态版本此外,运行客户端应用程序的目标主机必须安装 Visual C++ Redistributable for Visual Studio。所需版本是 VC++ Redistributable 2015 for Connector/C++ 1.1.11 及更高版本(商业和社区构建),VC++ Redistributable 2013 for Connector/C++ 1.1.11 之前的版本(仅限社区构建)。对于 1.1.8 版及之前
/MD
的版本:通过选择编译器选项 链接到 C++ 运行时库的动态版本
如果您使用的是 Oracle 构建的连接器/C++,请不要使用 or选项
/MTd
。/MDd
有关解释,请参阅此讨论: Connector/C++ and Application Build Configuration Must Match。