4.5 Dealing with Problems Compiling MySQL

The solution to many problems involves reconfiguring. If you do
reconfigure, take note of the following:

If CMake is run after it has previously
been run, it may use information that was gathered during its
previous invocation. This information is stored in
CMakeCache.txt. When
CMake starts, it looks for that file and
reads its contents if it exists, on the assumption that the
information is still correct. That assumption is invalid when
you reconfigure.

Each time you run CMake, you must run
make again to recompile. However, you may
want to remove old object files from previous builds first
because they were compiled using different configuration
options.

To prevent old object files or configuration information from
being used, run the following commands before re-running
CMake:

On Unix:

shell> make clean
shell> rm CMakeCache.txt

On Windows:

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

If you build outside of the source tree, remove and recreate your
build directory before re-running CMake. For
instructions on building outside of the source tree, see
How to Build MySQL
Server with CMake.

On some systems, warnings may occur due to differences in system
include files. The following list describes other problems that
have been found to occur most often when compiling MySQL:

To define which C and C++ compilers to use, you can define the
CC and CXX environment
variables. For example:

The sql_yacc.cc file is generated from
sql_yacc.yy. Normally, the build process
does not need to create sql_yacc.cc
because MySQL comes with a pregenerated copy. However, if you
do need to re-create it, you might encounter this error:

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

This is a sign that your version of yacc is
deficient. You probably need to install a recent version of
bison (the GNU version of
yacc) and use that instead.

Versions of bison older than 1.75 may
report this error:

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

The maximum table size is not actually exceeded; the error is
caused by bugs in older versions of bison.