IDE CLion может переходить в библиотеку #include <mariadb/mysql.h>
, то есть, файл найден, однако проект не компилируется: /home/nerd/CLionProjects/ISPstats/main.cpp:8: undefined reference to
mysql_init'`. Добавил в cmake
include_directories(/usr/lib/mysql mariadb)
target_link_libraries(${PROJECT_NAME} mariadb)
Теперь программа, не дойдя до main, падает с сообщением Process finished with exit code 139 (interrupted by signal 11: SIGSEGV).
В чем может быть проблема и как подключить таки библиотеку? Есть подозрение, что распаковывать файл коннектора MariaDB и кидать в /usr/lib/mysql было не очень хорошей идеей, но ничего другого придумать не могу.
Полный код приложения:
#include <iostream>
#include <mariadb/mysql.h>
int main(){
std::cout<<"start";
MYSQL conn;
std::cout<< "MYSQL conn;";
if(!mysql_init(&conn)){
std::cout<<"Error create MySQL descriptor";
}
if(!mysql_real_connect(&conn,"localhost","stats","q1w2e3r4","statsDB",3306,NULL,0)){
std::cout<<"Error connection";
}
return 0;
}
CmakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(ISPstats)
set(CMAKE_CXX_STANDARD 17)
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
include_directories(/usr/lib/mysql mariadb)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
target_link_libraries(${PROJECT_NAME} mariadb)
Нашел пример тут, однако CMake ругается на
CMake Error at CMakeLists.txt:17 (find_package):
By not providing "FindMariaDBClient.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"MariaDBClient", but CMake did not find one.
Could not find a package configuration file provided by "MariaDBClient"
with any of the following names:
MariaDBClientConfig.cmake
mariadbclient-config.cmake
Add the installation prefix of "MariaDBClient" to CMAKE_PREFIX_PATH or set
"MariaDBClient_DIR" to a directory containing one of the above files. If
"MariaDBClient" provides a separate development package or SDK, be sure it
has been
Установлены mariadb-server, mariadb-client, libmariadb и libmariadb-dev, не знаю, что еще можно сделать.
Примеры коннектора mariadb лежат тут. Собираю examples, после команды cmake нужно найти файл CMakeFiles/mysql_debug.dir/link.txt и заменить lmysql.h на -lmariadb. Судя по данному решению, если бы я использовал mySQL, такой проблемы бы не было
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Это мой код по сортировке фамилий, Входят фамилии, пробегаются по функции Алфавит, и потом им присваивается соответствующее значение в массиве
Так происходит работа с двумя формами из разных функций
Есть прелоэдер свёрстаный на html и сss, с анимацией (@keyframes), можно ли его как то легко, желательно автоматически, с помощью какой нибудь программы,преобразовать...