FindODBC¶
3.12 版本新增。
查找开放数据库连接(ODBC)库,该库实现了一个用于访问数据库系统的标准API。ODBC使应用程序能够使用一组通用的函数与不同的数据库管理系统(DBMS)进行通信。与特定数据库的通信通过ODBC驱动程序处理,库在运行时加载这些驱动程序。
在Windows上,当使用Visual Studio构建时,此模块假定ODBC库由可用的Windows SDK提供。
在类Unix系统上,此模块搜索由unixODBC或iODBC实现的ODBC API提供的ODBC库。默认情况下,此模块首先查找unixODBC的ODBC配置程序,然后查找iODBC的,以确定ODBC库和包含目录。如果找不到配置程序,它将在标准位置搜索ODBC头文件和库。
导入的目标¶
此模块提供以下 导入目标
ODBC::ODBC
封装ODBC使用要求的目标,如果找到ODBC则可用。
结果变量¶
此模块定义了以下变量
ODBC_FOUND
指示是否找到ODBC的布尔值。
ODBC_INCLUDE_DIRS
包含使用ODBC所需的头文件的目录。
ODBC_LIBRARIES
链接ODBC所需的库。
缓存变量¶
以下缓存变量也可以设置
ODBC_INCLUDE_DIR
包含
sql.h
和其他ODBC头文件的目录路径。在Windows上可能为空,因为对应于预期Windows SDK的包含目录在编译环境中已可用。ODBC_LIBRARY
ODBC库的路径或库名称。在Windows上,这可能只是一个库名称,因为对应于预期Windows SDK的库目录在编译环境中已可用。
ODBC_CONFIG
如果找到或指定了ODBC配置程序的路径。例如,unixODBC 的
odbc_config
,或 iODBC 的iodbc-config
。
限制¶
在Windows上,此模块不搜索iODBC。
在类Unix系统上,没有内置机制来优先选择unixODBC或iODBC。要绕过此限制,请显式设置
ODBC_CONFIG
变量为所需ODBC配置程序的路径。此模块不支持搜索或选择特定的ODBC驱动程序。
示例¶
查找和使用ODBC¶
查找ODBC并将其链接到项目目标
find_package(ODBC)
target_link_libraries(project_target PRIVATE ODBC::ODBC)
在类Unix系统上查找自定义ODBC安装¶
以下示例适用于类Unix系统,并演示如何在CMake配置阶段设置提示和缓存变量,以帮助此模块查找自定义ODBC实现(例如,默认不支持的实现)。
使用 CMAKE_PREFIX_PATH
指定安装前缀
$ cmake -D CMAKE_PREFIX_PATH=/path/to/odbc-installation -B build
或使用专用变量 ODBC_ROOT
$ cmake -D ODBC_ROOT=/path/to/odbc-installation -B build
如果可用,手动指定ODBC配置程序,以便可以根据配置工具自动确定ODBC安装
$ cmake -D ODBC_CONFIG=/path/to/odbc/bin/odbc-config -B build
手动指定ODBC库和包含目录
$ cmake \
-D ODBC_LIBRARY=/path/to/odbc/lib/libodbc.so \
-D ODBC_INCLUDE_DIR=/path/to/odbc/include \
-B build