Spec-Zone .ru
спецификации, руководства, описания, API

21.7.1. Компиляция Программ с libmysqld

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

Получить a libmysqld библиотека, если Вы создаете MySQL из источника самостоятельно, следует сконфигурировать MySQL с -DWITH_EMBEDDED_SERVER=1 опция. См. Раздел 2.9.4, "MySQL Source-Configuration Options".

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

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

Чтобы скомпилировать программу 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 команда содержится в обратных галочках, не единственных кавычках.

На некоторых non-gcc платформах встроенная библиотека зависит от библиотек времени выполнения C++, и соединение против встроенной библиотеки могло бы привести к ошибкам недостающего символа. Решить это, ссылка, используя компилятор C++ или явно перечислить необходимые библиотеки по командной строке ссылки.