Установка SOCI MySQL для C++

Второй день пытаюсь установить SOCI по https://dane-bulat.medium.com/working-with-databases-in-c-an-introduction-7d6a6a78ae66 этой инстуркции. Ошибка выдается на этапе

cmake -G "Unix Makefiles" ..
make
make install

Пытался устанавливать папку в build внутри самой SOCI, как и написано на сайте, после чего прописывал пути к папкам в launch.json и c_cpp_properties.json. После этой попытки удалял и устанавливал SOCI в саму папку проекта C++, но после команды make все равно выдавалась ошибка, после make install тоже была ошибка, прочитал что вводить надо с -i для игнорирования ошибок. В итоге выдаются ошибки

#include <soci.h>
#include <soci-mysql.h>

что эти файлы не найдены и обнаружена ошибка include

upd: В общем, так и не разобрался как сделать это в VSCode, поэтому установил CLion, в нем проще устанавливать сторонние библиотеки. В самой папке soci/examples/subdir-include/ нашел файл инструкцию как прописать файл CMakeLists.txt в проекте на CLion, и исчезла ошибка soci.h file not found, но возник другой вопрос. Как в soci backend называется mysql, чтоб подключить именно его в строке option(SOCI_EMPTY "Build the sample backend called Empty" ON), потому что в примере используют backend Empty

upd_upd: Всё отчистил и скачал папку SOCI с gihub напрямую в CLionProjects/untitled/lib, не прописывал команды выше

cmake -G "Unix Makefiles" -DWITH_BOOST=OFF -DWITH_MYSQL=ON
make
make install

потому что выдается куча ошибок в терминале.

Прописал файл CMakeLists.txt так:

cmake_minimum_required(VERSION 3.28)
project(untitled)

set(CMAKE_CXX_STANDARD 17)
set(SOCI_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/soci)

find_package(Soci REQUIRED)

option(SOCI_MYSQL "Build the sample backend called MySQL" ON)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/soci ${SOCI_BINARY_DIR})

add_executable(untitled untitled.cpp)

target_link_libraries(untitled
        PRIVATE
        Soci::core
        Soci::mysql
)

Все равно выдается ошибка

fatal error: 'mysql.h' file not found

#include <mysql.h> // MySQL Client

Ответы (1 шт):

Автор решения: Alexey

Установил с помощью git clone библиотеки boost и mysql-connector-cpp в CLionProjects/untitled/lib/, прописал CMakeLists.txt:

cmake_minimum_required(VERSION 3.28)
project(untitled)

set(CMAKE_CXX_STANDARD 17)
set(SOCI_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/soci)
set (Boost_USE_STATIC_LIBS OFF)

find_package(Soci REQUIRED)
find_package (Boost REQUIRED COMPONENTS unit_test_framework)

include_directories (${Boost_INCLUDE_DIRS})


option(SOCI_MYSQL "Build the sample backend called MySQL" ON)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/soci ${SOCI_BINARY_DIR})

add_executable(untitled untitled.cpp)

target_link_libraries(untitled PRIVATE Soci::core Soci::mysql ${Boost_LIBRARIES})

Но проблема не решилась, поэтому в конце этого же файла скопировал и вставил код из SOCI/cmake/modules/FindMySQL.cmake.

После этого все заработало, и код вроде как компилируется и выполняется.

→ Ссылка