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을 설치하는" 시스템 요구 사항을 참조하십시오.