Spec-Zone.ru › MySQL 5.7

27.6.1 Компиляция программ с libmysqld

В предварительно скомпилированных двоичных дистрибутивах MySQL, которые включают libmysqld, встроенную библиотеку сервера, MySQL строит библиотеку с использованием соответствующего компилятора поставщика, если он есть.

Чтобы получить libmysqld библиотеку, если вы сами собираете MySQL из исходного кода, вы должны настроить MySQL с опцией -DWITH_EMBEDDED_SERVER=1. См. Раздел 2.8.7, «Параметры конфигурации исходного кода MySQL».

При компоновке вашей программы с libmysqld, вы также должны включить специфичные для системы pthread библиотеки и некоторые библиотеки, используемые сервером MySQL. Полный список библиотек можно получить, выполнив mysql_config --libmysqld-libs.

Должны использоваться правильные флаги для компиляции и компоновки многопоточной программы, даже если вы не вызываете непосредственно какие-либо многопоточные функции в вашем коде.

Для компиляции программы на C, чтобы включить необходимые файлы для встраивания библиотеки сервера MySQL в исполняемый вариант программы, компилятору необходимо знать, где найти различные файлы, и получить инструкции по компиляции программы. Следующий пример показывает, как программу можно скомпилировать из командной строки, предполагая, что вы используете gcc, компилятор GNU C:

gcc mysql_test.c -o mysql_test \
`/usr/local/mysql/bin/mysql_config --include --libmysqld-libs`

Непосредственно после команды gcc следует имя исходного файла программы на C. После него указывается опция -o, чтобы указать, что следующее имя файла — это имя, которое компилятор должен дать выходному файлу, скомпилированной программе. Следующая строка кода сообщает компилятору получить расположение файлов заголовков и библиотек, а также другие настройки для системы, на которой происходит компиляция. Команда mysql_config находится в обратных кавычках, а не в одинарных.

На некоторых платформах, не использующих gcc, встроенная библиотека зависит от библиотек выполнения C++, а компоновка против встроенной библиотеки может привести к ошибкам «отсутствующий символ». Для решения этой проблемы используйте компилятор C++ или явно укажите необходимые библиотеки в командной строке компоновки.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/libmysqld-compiling.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API