Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.7.1 libmysqld によるプログラムのコンパイル

組み込みサーバーライブラリ 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++ コンパイラを使用してリンクするか、リンクコマンド行で、必要なライブラリを明示的に挙げます。


User Comments
  Posted by on July 14, 2003
You may need to include libwrap in order to compile a program. It wasn't present in the output of 'mysql_config --libmysqld-libs' on my system.
  Posted by Matt Solnit on April 29, 2004
If you are going to use the Embedded MySQL Server with C#, you MUST re-compile MySQL with the USE_TLS pre-processor constant defined in the "mysys" project. Otherwise the mysql_server_init() function call will fail.
Sign Up Login You must be logged in to post a comment.