You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新CMake的FindMysqlConnectorCpp模块适配mysql-connector-c++8.1.0的JDBC?

修复FindMysqlConnectorCpp.cmake适配8.1.0版本的方案

核心问题原因

mysql-connector-c++ 8.1.0版本将遗留JDBC代码的头文件迁移到了jdbc子目录下,旧版Find模块仍在原路径查找头文件,导致找不到MYSQLCONNECTORCPP_INCLUDE_DIR。

具体修改步骤

替换旧版FindMysqlConnectorCpp.cmake为以下内容,适配RHEL8 RPM包的路径结构:

# - Try to find MysqlConnectorCpp (JDBC module)
# Once done this will define
#  MYSQLCONNECTORCPP_FOUND - System has MysqlConnectorCpp
#  MYSQLCONNECTORCPP_INCLUDE_DIR - The MysqlConnectorCpp include directories
#  MYSQLCONNECTORCPP_LIBRARY - The libraries needed to use MysqlConnectorCpp

find_path(MYSQLCONNECTORCPP_INCLUDE_DIR
          NAMES jdbc/mysql_connection.h
          PATHS /usr/include/mysql-cppconn
          DOC "The MysqlConnectorCpp (JDBC) include directory")

find_library(MYSQLCONNECTORCPP_LIBRARY
             NAMES mysqlcppconn
             PATHS /usr/lib64
             DOC "The MysqlConnectorCpp (JDBC) library")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MysqlConnectorCpp
                                  DEFAULT_MSG
                                  MYSQLCONNECTORCPP_INCLUDE_DIR MYSQLCONNECTORCPP_LIBRARY)

if(MYSQLCONNECTORCPP_FOUND)
  if(NOT TARGET MysqlConnectorCpp::JDBC)
    add_library(MysqlConnectorCpp::JDBC SHARED IMPORTED)
    set_target_properties(MysqlConnectorCpp::JDBC PROPERTIES
                          IMPORTED_LOCATION "${MYSQLCONNECTORCPP_LIBRARY}"
                          INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCONNECTORCPP_INCLUDE_DIR}")
  endif()
endif()

mark_as_advanced(MYSQLCONNECTORCPP_INCLUDE_DIR MYSQLCONNECTORCPP_LIBRARY)

项目CMakeLists.txt中的使用方式

确保你的项目中正确链接目标:

find_package(MysqlConnectorCpp REQUIRED)
# 替换your_target为你的实际目标名称
target_link_libraries(your_target PRIVATE MysqlConnectorCpp::JDBC)

代码中头文件引用注意

由于头文件在jdbc子目录下,代码中需要调整引用路径:

#include <jdbc/mysql_connection.h>
#include <jdbc/mysql_driver.h>
// 其他JDBC相关头文件同理

验证路径(可选)

可以通过以下命令确认RHEL8上RPM包的文件结构:

# 查看头文件路径
rpm -ql mysql-connector-c++-devel-8.1.0-1.el8.x86_64 | grep include
# 查看库文件路径
rpm -ql mysql-connector-c++-devel-8.1.0-1.el8.x86_64 | grep lib

内容的提问来源于stack exchange,提问作者cinargursoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:40:12