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


2.9.5 MySQL のコンパイルに関する問題

多くの問題の解決方法には再構成が含まれます。再構成を行う場合は、次に注意してください。

  • CMake を以前に実行したあとで実行すると、以前の起動時に収集した情報を使用する場合があります。この情報は CMakeCache.txt に格納されています。CMake は、起動時にそのファイルを探し、存在すればその情報がまだ正しいと仮定して内容を読み込みます。この仮定は再構成した場合には無効です。

  • CMake を実行するたびに、make を再実行して再コンパイルする必要があります。しかし、前のビルドの古いオブジェクトファイルが異なる構成オプションでコンパイルされている場合、それらを最初に削除する場合もあります。

古いオブジェクトファイルまたは構成情報が使用されることを予防するために、CMake を再実行する前に次のコマンドを実行します。

Unix の場合:

shell> make clean
shell> rm CMakeCache.txt

Windows の場合:

shell> devenv MySQL.sln /clean
shell> del CMakeCache.txt

ソースツリー外でビルドする場合、CMake を再実行する前にビルドディレクトリを削除して再作成します。ソースツリー外でのビルドに関する説明は、Build MySQL Server を CMake でビルドする方法を参照してください。

一部のシステムでは、システムインクルードファイルの違いにより警告が生じる場合があります。次のリストは、MySQL のコンパイル時にもっともよく生じることがよくわかっているその他の問題を記述しています。

  • どの C および C++ コンパイラを使用するかを定義するために、CC および CXX 環境変数を使用できます。例:

    shell> CC=gcc
    shell> CXX=g++
    shell> export CC CXX
    

    独自の C および C++ コンパイラフラグを指定するには、CMAKE_C_FLAGS および CMAKE_CXX_FLAGS CMake オプションを使用します。Compiler Flagsを参照してください。

    指定する必要がある可能性のあるフラグを確認するには、mysql_config を、--cflags および --cxxflags オプションを使用して起動します。

  • コンパイル段階でどのコマンドが実行されるかを確認するには、CMake を使用して MySQL を構成したあと、単なる make ではなく make VERBOSE=1 を実行します。

  • コンパイルに失敗する場合は、MYSQL_MAINTAINER_MODE オプションが有効かどうかをチェックします。このモードでは、コンパイラの警告はエラーになるため、無効にすることによりコンパイルを続行できる場合があります。

  • コンパイルが次のいずれかのエラーで失敗した場合、make のバージョンを GNU make にアップグレードする必要があります。

    make: Fatal error in reader: Makefile, line 18:
    Badly formed macro assignment
    

    または:

    make: file `Makefile' line 18: Must be a separator (:
    

    または:

    pthread.h: No such file or directory
    

    Solaris および FreeBSD は、make プログラムに問題が多いことが知られています。

    GNU make 3.75 は動作が確認されています。

  • sql_yacc.cc ファイルは sql_yacc.yy から生成されます。通常、MySQL には事前生成された sql_yacc.cc が付属しているため、ビルドプロセスでコピーを作成する必要はありません。しかし、それを再度作成する必要がある場合、次のエラーに遭遇する場合もあります。

    "sql_yacc.yy", line xxx fatal: default action causes potential...
    

    これは yacc のバージョンに問題があることを意味しています。おそらく、代わりに bison (the GNU version of yacc) の最近のバージョンをインストールして使用する必要があります。

    bison 1.75 以前のバージョンでは次のエラーがレポートされる場合があります。

    sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
    

    テーブルの最大サイズを実際には超えていなくても、bison の旧バージョンのバグでエラーが発生します。

ツールの取得または更新の詳細は、セクション2.9「ソースから MySQL をインストールする」のシステム要件を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.