1

Возникла проблема при подключении C++ программы к MYSQL серверу. Ошибка:

ссылка на неразрешенный внешний символ _mysql_init@4 в функции _main

Все делал по инструкциям (их было много примерно одинаковых и все время приходил к этой ошибке.

Microsoft Visual Studio Community 2015

MYSQL Server 5.7

  • Библиотеку для работы с nySQL не забыли подключить? – Harry Nov 01 '16 at 19:20
  • Не забыл #include <mysql.h> так тоже пробовал #pragma comment(lib, "libmysql.lib") #pragma comment(lib,"mysqlclient.lib") – Александр Nov 01 '16 at 19:26
  • 3
    А библиотеки линковщик точно находит? Они в нужных местах лежат?... Просто сообщение говорит о том, что линковщик не может найти использованную в main функцию - не объявление из заголовочного файла, а саму библиотеку. – Harry Nov 01 '16 at 19:31
  • @Harry А как проверить, находит ли линковщик библиотеки? Лежат в нужных местах. Тоесть в тех, куда я указал. – Александр Nov 01 '16 at 19:35
  • 1
    @Александр линкер ругнется, если указанную lib не найдет. Соответственно вопрос: другие ошибки при сборке есть? – Владимир Мартьянов Nov 01 '16 at 20:38
  • Посмотрите тут – αλεχολυτ Nov 02 '16 at 11:04
  • @Александр: Библиотекам мало "лежать в нужных местах". Библиотеки должны быть явно скормлены на вход линкеру. Ваш #pragma comment(lib, "libmysql.lib") - это оно, но лучше было бы пока не лезть в новомодные #pragma comment, а по старинке указать библиотеки явно прямо во входных настройках линкера. – AnT stands with Russia Jul 05 '17 at 21:46

1 Answers1

1

Очень возможно, что у вас намешано DLL/библиотек от разных версий mysql, соответственно когда подключается динамическая библиотека, может подключиться не та, что нужно, и нужные функции там не находятся. Попробуйте поискать сколько у вас в системе разных библиотек от mysql.