Clion中使用MySQL Connector/C++遇链接错误求助
解决MinGW下MySQL Connector C++链接错误问题
错误根源
你使用的是MinGW编译器,但链接的是MySQL Connector C++中vs14目录下的MSVC编译版本库,两者的应用二进制接口(ABI)不兼容,导致链接阶段出现未定义引用错误。
解决步骤
1. 下载MinGW兼容的MySQL Connector C++
前往MySQL官方下载页面,选择与你MinGW架构(32/64位)匹配的Connector C++版本,确保下载包名称包含MinGW标识,不要选择VS/MSVC版本的安装包。
2. 修改CMakeLists.txt配置
将原配置中的路径替换为MinGW版本的Connector路径,示例配置如下:
cmake_minimum_required(VERSION 3.25) project(server) set(CMAKE_CXX_STANDARD 17) # 替换为MinGW版本的Connector头文件路径 set(MYSQL_CONNECTOR_CPP_INCLUDE_DIR "C:\\Program Files\\MySQL\\MySQL Connector C++ 8.0\\include\\jdbc") # 替换为MinGW版本的Connector库文件目录(示例为lib64/mingw,以实际下载的路径为准) set(MYSQL_CONNECTOR_CPP_LIBRARY_DIR "C:\\Program Files\\MySQL\\MySQL Connector C++ 8.0\\lib64\\mingw") include_directories(${MYSQL_CONNECTOR_CPP_INCLUDE_DIR}) link_directories(${MYSQL_CONNECTOR_CPP_LIBRARY_DIR}) add_executable(server main.cpp) # MinGW环境下链接对应版本的库,直接写库名即可 target_link_libraries(server mysqlcppconn)
3. 重新编译验证
重新执行CMake生成项目文件,再进行编译即可解决链接错误。如果仍有问题,检查:
- 库路径是否正确指向MinGW版本的库文件
- 编译器架构(32/64位)与Connector版本是否完全匹配
内容的提问来源于stack exchange,提问作者muse0
相关产品推荐
相关产品推荐

