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

21.4.3.3. Динамически MySQL Linking, Connector/C ++ Против MySQL Client Library

Отметить

Этот раздел обращается к динамическому подключению MySQL, Connector/C ++ с клиентской библиотекой, не динамическим подключением приложения к MySQL, Connector/C ++.

Предварительно скомпилированные двоичные файлы MySQL, Connector/C ++, используют статическое связывание с клиентской библиотекой по умолчанию.

Приложение, которое использует MySQL, Connector/C ++, может быть или статически или динамически соединено с MySQL, Connector/C ++ библиотеки. MySQL, Connector/C ++, обычно статически соединяется с базовой клиентской библиотекой MySQL (или Connector/C). Отметьте, что, если иначе не утверждено, ссылка на клиентскую библиотеку MySQL также берется, чтобы включать Connector/C, который является отдельно упакованной, автономной версией клиентской библиотеки MySQL. От MySQL, Connector/C ++ 1.1.0 на, это возможно к также динамически ссылке к базовой клиентской библиотеке MySQL. Возможность MySQL, Connector/C ++, чтобы динамически соединиться с клиентской библиотекой MySQL, не включается по умолчанию. Активирование этой опции делается через опцию времени компиляции, компилируя MySQL, Connector/C ++ исходный код.

Чтобы использовать возможность динамически соединить клиентскую библиотеку с MySQL, Connector/C ++, определите MYSQLCLIENT_STATIC_BINDING:BOOL создавая MySQL, Connector/C ++ исходный код:

shell> rm
        CMakeCache.txtshell> cmake
        -DMYSQLCLIENT_STATIC_BINDING:BOOL=1 .shell> make cleanshell> makeshell> make
        install

Теперь, в Вашем приложении, создавая соединение, MySQL, Connector/C ++, выберет и загрузит клиентскую библиотеку во времени выполнения. Это выберет клиентскую библиотеку, ища определенные расположения и переменные окружения в зависимости от операционной системы узла. Также возможно, создавая соединение в приложении определить абсолютный путь к клиентской библиотеке, которая будет загружена во времени выполнения. Это может быть удобно, если Вы определили стандартное расположение, из которого Вы хотите, чтобы клиентская библиотека была загружена. Это иногда делается, чтобы обойти возможные конфликты с другими версиями клиентской библиотеки, которая может быть расположена на системе.