MySQL 8.0 リファレンスマニュアル


2.9.8 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 オプションを使用します。 コンパイラフラグを参照してください。

    指定する必要がある可能性のあるフラグを確認するには、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 をインストールする」のシステム要件を参照してください。


関連キーワード:  インストール, ソース, 起動, コンパイル, 実行, 確認, CMake, 構成, shell, バージョン