Ссылка mysql_library_end ()

Я пытался устранить серьезную утечку памяти в моем приложении C ++. Я сузил его до создания соединений MySQL, и документ mysqlpp (плюс большое количество поисков в Google) указывает на то, что мне нужно вызвать mysql_library_end (), чтобы сообщить C API о необходимости очистки после себя.

Когда я пытаюсь использовать эту функцию, Visual Studio выдает ошибку ссылки для «mysql_library_end ()». Справедливо, я не сказал, где искать.

Когда я включаю заголовочный файл mysql.h и перестраиваю, Visual Studio выдает ошибку ссылки для «mysql_server_end ()«вместо этого. Я проверил mysql.h (в моей среде сборки), и единственная ссылка на функцию, которую я хочу использовать (mysql_library_end ()):

#define mysql_library_end mysql_server_end

В файле есть объявление функции для mysql_server_end (), но Visual Studio не может его видеть. Я просто застрял с этой ошибкой компоновщика, и я понятия не имею, почему это происходит.

Кто-нибудь может помочь?

Ура,
Адам.

РЕДАКТИРОВАТЬ

Я использую Visual Studio 2005. Сообщение об ошибке из IDE:

Ошибка 6 ошибка LNK2019: неразрешенный внешний символ _mysql_server_end @ 0, на который ссылается функция «public: __thiscall CConnectionParams :: ~ CConnectionParams (void)» (?? 1CConnectionParams @@ QAE @ XZ) CConnectionParams.obj.

Где CConnectionParams — это файл .cpp вызова mysql_library_end ().

1

Решение

Нашел решение. Сам по себе заголовочный файл недостаточен, необходимо связать всю библиотеку. Для взаимодействия с MySQL C API можно использовать две библиотеки: libmysql.lib и mysqlclient.lib. Один статичен, другой динамичен. Тот, который работал для меня, был libmysql.lib. Обратите внимание, что в результате мне не нужно было включать #include mysql.h.

Чтобы связать эту библиотеку в Visual studio, вам просто нужно включить ее как часть зависимостей вашего проекта. Я перетащил его в дерево решений из его каталога, установки mysql, но это не очень элегантный метод, потому что он работает только для VS, а не для других сред сборки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector