組み込みサーバーライブラリ libmysqld
を含むプリコンパイル済みのバイナリ MySQL 配布では、MySQL は、適切なベンダーコンパイラがあればそれを使用して、ライブラリを構築します。
自分でソースから MySQL を構築する場合に、libmysqld
ライブラリを取得するには、-DWITH_EMBEDDED_SERVER=1
オプションを使用して、MySQL を構成してください。セクション2.9.4「MySQL ソース構成オプション」を参照してください。
プログラムを libmysqld
とリンクさせる場合、システム固有の pthread
ライブラリおよび MySQL サーバーが使用するいくつかのライブラリも含める必要があります。mysql_config --libmysqld-libs を実行して、ライブラリの完全なリストを取得できます。
コードでスレッド関数を直接呼び出さない場合でも、スレッドプログラムをコンパイルし、リンクするための正しいフラグを使用する必要があります。
C プログラムをコンパイルして、MySQL サーバーライブラリをプログラムの実行可能バージョンに組み込むために必要なファイルを含めるには、コンパイラは各種ファイルを見つける場所を知る必要があり、プログラムのコンパイル方法についての指示を必要とします。次の例に、GNU C コンパイラ gcc を使用するものとして、コマンド行からプログラムをコンパイルする方法を示します。
gcc mysql_test.c -o mysql_test \
`/usr/local/mysql/bin/mysql_config --include --libmysqld-libs`
gcc コマンドの直後は、C プログラムソースファイルの名前です。その後に、-o
オプションを指定して、後続のファイル名が、コンパイラが出力ファイルのコンパイル済みプログラムに指定することになる名前であることを示します。コードの次の行は、コンパイラにインクルードファイルおよびライブラリ、それがコンパイルされるシステムのその他の設定の場所を取得するように伝えます。mysql_config コマンドは、単一引用符ではなく、逆引用符で囲みます。
一部の gcc 以外のプラットフォームでは、組み込みライブラリは C++ 実行時ライブラリに依存するため、組み込みライブラリに対してリンクすると、シンボルなしエラーが発生することがあります。これを解決するには、C++ コンパイラを使用してリンクするか、リンクコマンド行で、必要なライブラリを明示的に挙げます。