多くの問題の解決方法には再構成が含まれます。再構成を行う場合は、次に注意してください。
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のバージョンを GNUmakeにアップグレードする必要があります。
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プログラムに問題が多いことが知られています。
GNUmake3.75 は動作が確認されています。
sql_yacc.cc
ファイルはsql_yacc.yy
から生成されます。通常、MySQL には事前生成されたsql_yacc.cc
が付属しているため、ビルドプロセスでコピーを作成する必要はありません。しかし、それを再度作成する必要がある場合、次のエラーに遭遇する場合もあります。"sql_yacc.yy", linexxxfatal: default action causes potential...
これはyaccのバージョンに問題があることを意味しています。おそらく、代わりにbison(the GNU version ofyacc) の最近のバージョンをインストールして使用する必要があります。
bison1.75 以前のバージョンでは次のエラーがレポートされる場合があります。
sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
テーブルの最大サイズを実際には超えていなくても、bisonの旧バージョンのバグでエラーが発生します。
ツールの取得または更新の詳細は、セクション2.9「ソースから MySQL をインストールする」のシステム要件を参照してください。