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

如何解决CLion中MySQL Connector的_imp__get_driver_instance未定义引用错误

解决MySQL Connector/C++中"Undefined reference to _imp__get_driver_instance"链接错误

嘿,这个问题我之前也踩过坑,本质就是链接阶段没把MySQL Connector的库文件加入项目——你已经通过include_directories让编译器识别了函数声明,但链接器找不到get_driver_instance的实际实现代码,所以才会报这个错误。

给你一步步梳理解决方案:

1. 定位MySQL Connector的库目录

你的Connector路径是C:/mysql-connector-c++-noinstall-1.1.9-win32,进入这个目录下的lib文件夹,能找到适配MinGW环境的库文件:

  • libmysqlcppconn.dll.a:动态链接用的导入库
  • libmysqlcppconn-static.a:静态链接用的完整库

2. 修改CMakeLists.txt配置

在你原有的配置基础上,添加库目录指定和链接指令:

cmake_minimum_required(VERSION 3.8)
project(Learn_Cpp)
set(CMAKE_CXX_STANDARD 17)

# 保留你原有的头文件目录配置
include_directories(
    "C:/mysql-connector-c++-noinstall-1.1.9-win32/include"
    "C:/mysql-connector-c++-noinstall-1.1.9-win32/include/cppconn"
    "C:/boost_1_66_0"
)

# 指定库文件所在的目录
link_directories("C:/mysql-connector-c++-noinstall-1.1.9-win32/lib")

set(SOURCE_FILES "C++ Tutorials/ClassFile.cpp" "C++ Tutorials/ClassFile.h" "C++ Tutorials/Learn.cpp")
add_executable(Learn_Cpp ${SOURCE_FILES})

# 链接MySQL Connector库
# 选择动态链接的话用这行:
target_link_libraries(Learn_Cpp mysqlcppconn)
# 如果选静态链接,替换成下面两行(需要定义静态宏避免编译冲突):
# target_compile_definitions(Learn_Cpp PRIVATE MYSQLCPPCONN_STATIC)
# target_link_libraries(Learn_Cpp mysqlcppconn-static)

3. 额外注意事项

  • 若选择动态链接,记得把libmysqlcppconn.dll从Connector的lib文件夹复制到你的可执行文件生成目录(比如cmake-build-debug),否则运行程序时会提示找不到DLL。
  • 少数版本的Connector需要显式调用命名空间下的函数,若修改CMake后仍报错,可以把代码里的driver = get_driver_instance();改成driver = sql::mysql::get_driver_instance();。

按照上述步骤修改后重新构建项目,应该就能解决这个链接错误了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:24