在window11环境下,下载mysql官方的最新C++驱动库MySQL Connector/C++ 在CMakelists.txt中配置使用发生异常,cmakelist内容如下:
cmake_minimum_required(VERSION 3.25)
project(time_temperature_drifting)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
include_directories(extern/include D:/Z/Lib/mysql-connector-c++-8.2.0-winx64/include)
link_directories(extern/libs D:/Z/Lib/mysql-connector-c++-8.2.0-winx64/lib64/vs14)
find_package(Qt5 COMPONENTS
Core
Gui
Widgets
REQUIRED)
add_executable(time_temperature_drifting main.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui)
target_link_libraries(time_temperature_drifting
Qt5::Core
Qt5::Gui
Qt5::Widgets
visa64
mysqlcppconn8-static
)
在mainwindow中引入
#include "../include/mainwindow.h"
#include "../ui/ui_MainWindow.h"
#include <mysqlx/xdevapi.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
}
MainWindow::~MainWindow() {
delete ui;
}
项目启动后报错
D:\Z\softerware\Cloin\CLion 2023.1.4\bin\mingw\bin/ld.exe: CMakeFiles/time_temperature_drifting.dir/src/mainwindow.cpp.obj: in function `mysqlx::abi2::r0::string::traits<char>::to_str[abi:cxx11](mysqlx::abi2::r0::string const&)':
D:/Z/Lib/mysql-connector-c++-8.2.0-winx64/include/mysqlx/devapi/common.h:225: undefined reference to `mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11](mysqlx::abi2::r0::string const&)'
D:\Z\softerware\Cloin\CLion 2023.1.4\bin\mingw\bin/ld.exe: CMakeFiles/time_temperature_drifting.dir/src/mainwindow.cpp.obj: in function `mysqlx::abi2::r0::Value::print(std::ostream&) const':
D:/Z/Lib/mysql-connector-c++-8.2.0-winx64/include/mysqlx/devapi/document.h:510: undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
D:\Z\softerware\Cloin\CLion 2023.1.4\bin\mingw\bin/ld.exe: CMakeFiles/time_temperature_drifting.dir/src/mainwindow.cpp.obj:mainwindow.cpp:(.rdata$_ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE]+0x20): undefined reference to `mysqlx::abi2::r0::common::Value::print(std::ostream&) const'
D:\Z\softerware\Cloin\CLion 2023.1.4\bin\mingw\bin/ld.exe: CMakeFiles/time_temperature_drifting.dir/src/mainwindow.cpp.obj:mainwindow.cpp:(.rdata$.refptr._ZTVN6mysqlx4abi22r05DbDocE[.refptr._ZTVN6mysqlx4abi22r05DbDocE]+0x0): undefined reference to `vtable for mysqlx::abi2::r0::DbDoc'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.