• Как подключить mariadb в с++?

    Видимо -lmariadb должно быть вместо -lmysql.h
    Ответ написан
    3 комментария
  • Как "победить" ошибку: ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded?

    @finc8888 Автор вопроса
    Python Junior
    Нашел ответ в интернете: https://www.versatilewebsolutions.com/blog/2015/05...
    Вкратце:
    1.Находим файл конфигураций my.cnf в каталоге /etc/mysql/ , и редактируем его - добавляем в самом низу файла
    [mysqld]
    plugin-load-add = auth_socket.so

    и сохраняем файл(С этим возникнут проблемы если делать это через Nautilus тем же geditом. В терминале можно ввести
    gksu gedit /путь/к/папке/с_файлом/файл
    предварительно выполнив sudo apt install gksu, если пакет gksu неустановлен, подробнее тут: https://losst.ru/kak-redaktirovat-fajly-v-ubuntu
    2.Перезагружаем mysql командой
    sudo systemctl restart mysql.service
    3.Пробуем зайти в mysql без ввода пароля к mysql, вводим пароль только на требование системы(sudo)
    sudo mysql -u root
    После этих действий у меня все заработало!!!
    Ответ написан
    2 комментария
  • Как правильно подключить библиотеку в С++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Если вы используете conan, то:
    1) Прописаны ли у вас все нужные зависимости в conanfile.txt?
    2) Подключили ли вы нужные репозитории к конану?
    3) Выполняли ли вы conan install?

    Файл-то сборки-то у вас более-менее правильный, но проверьте то, что я написал выше.
    Ответ написан
    1 комментарий
  • Как правильно подключить библиотеку в С++?

    @res2001
    Developer, ex-admin
    1.Библиотека должна быть установлена в систему, что бы cmake смог ее найти. Лучше всего использовать штатный менеджер пакетов ОС. Кроме библиотеки нужно еще ставить и dev пакеты для нее (это заголовки). dev пакеты нужны как раз для возможности собрать свой (или не свой) код, использующий библиотеку. В некоторых дистрибутивах линукс может и не быть dev пакетов. В винде их нет то же, для MSVS есть свой менеджер пакетов - vcpkg.

    2.Вы должны заставить cmake найти библиотеку, это делается командами find_package или find_library.
    find_package - более расширенная версия, но для нее нужен модуль поиска. Для многих популярных библиотек cmake содержит уже готовые модули. Искать их можете тут по Find<Имя библиотеки>. Для MySQL клиента готового модуля нет. Можно загуглить, я думаю, будет не трудно найти готовый модуль и использовать его в своем проекте.
    find_library - просто ищет библиотеку по стандартным путям. Но для сборки обычно этого мало, т.к. нужны еще заголовочные файлы и если пакетный менеджер ставит их в специфические пути, то они будут не доступны. Поэтому лучше использовать find_package - он ищет все.

    3.Добавить путь к заголовочным файлам библиотеки к проекту с помощью команды: target_include_directories
    Переменная, содержащая путь должна быть определена в п.2 (либо вы задаете путь вручную)

    4.Добавить библиотеку в список линковки с помощью команды: target_link_libraries
    Аналогично нужно использовать переменные, которые будут определены в п.2.

    В этом процессе есть разные нюансы, которые могут влиять на используемые средства, например что делать если библиотеки нет в репозитории ОС или она распространяется только в виде исходников.

    В итоге все манипуляции приводят к тому, что компилятору задаются опции -I (для включения каталога с заголовочными файлами библиотеки), -l и возможно -L - для включения библиотеки в список линковки.

    Все это можно сделать и руками задав для компилятора нужные опции с помощью add_compile_options и add_link_options - но это приведет к тому, что скорее всего на другом компьютере или в другой ОС вам придется править cmakelist.txt для сборки.
    Ответ написан
    3 комментария