首页 > 解决方案 > MySQL 库在 C++ 中使用 cmake

问题描述

这是我用来在 windows 上使用 CMAKE GUI 生成构建系统的 cmakelists.txt 文件(因为我实际上必须在 c++ 中为 windows 制作控制台应用程序)。

cmake_minimum_required(VERSION 3.16) # Or whatever version you use
set(CMAKE_CXX_STANDARD 17)
# THIS HAS TO COME BEFORE THE PROJECT LINE
set(CMAKE_C_COMPILER "gcc")
set(CMAKE_CXX_COMPILER "g++")
# THIS HAS TO COME BEFORE THE PROJECT LINE
project(test VERSION 0.0.0 LANGUAGES C CXX)
project(main)
set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:\Program Files\MySQL\MySQL Connector C++ 8.0")
add_executable(test main.cpp)
target_link_libraries(test mysqlcppconn)
target_compile_features(test PRIVATE cxx_range_for)  
set(STDFS_LIB stdc++fs)

这是我要运行的代码(main.cpp)-

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>


int main()
{
 return 0;
}

我在 make #include <cppconn/driver.h> 时遇到错误 - 没有这样的文件或文件夹。

我猜这个

设置(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:\Program Files\MySQL\MySQL 连接器 C++ 8.0")

可以设置(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:/mysqlconn")

但是如果我将 MySQL Connector C++ 8.0 库放在那里,它无论如何都不起作用,那么应该怎么做呢?2021 年在 C++ 中使用 mysql 连接器应该不是秘密,对吗?

标签: c++mysqlcmake

解决方案


您没有设置包含目录的路径,我认为链接也不起作用,因为您也没有添加必要的路径。

如果FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR是您的正确路径,那么它将如下所示:

include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include)
link_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib64)

推荐阅读