Loading...
MySQL 9.5 Reference Manual 9.5의 2.8.8 Dealing with Problems Compiling MySQL의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
많은 문제에 대한 해결책은 재구성(reconfiguring)을 수행하는 것입니다. 재구성을 하는 경우, 다음 사항에 유의하십시오:
CMake를 이전에 실행한 후 다시 실행하면, 이전 호출 동안 수집된 정보를 사용할 수 있습니다. 이 정보는 CMakeCache.txt에 저장됩니다.
CMake가 시작될 때, 해당 파일이 존재하면 그 파일을 찾아 내용을 읽고, 그 정보가 여전히 올바르다고 가정합니다. 재구성을 하는 경우에는 그 가정이 유효하지 않습니다.
CMake를 실행할 때마다, 다시 컴파일하기 위해 make를 다시 실행해야 합니다. 하지만, 이전 빌드에서 생성된 오래된 오브젝트 파일들은 제거하는 것이 좋습니다. 왜냐하면 그것들은 다른 설정 옵션을 사용하여 컴파일되었기 때문입니다.
오래된 오브젝트 파일이나 설정 정보가 사용되는 것을 방지하려면, CMake를 다시 실행하기 전에 다음 명령을 실행하십시오:
Unix에서:
1$> make clean 2$> rm CMakeCache.txt
Windows에서:
1$> devenv MySQL.sln /clean 2$> del CMakeCache.txt
소스 트리 바깥에서 빌드를 하는 경우, CMake를 다시 실행하기 전에 빌드 디렉터리를 제거하고 다시 생성하십시오. 소스 트리 바깥에서 빌드하는 방법에 대한 설명은 How to Build MySQL Server with CMake를 참조하십시오.
일부 시스템에서는 시스템 인클루드 파일의 차이로 인해 경고가 발생할 수 있습니다. 다음 목록은 MySQL을 컴파일할 때 가장 자주 발생하는 다른 문제들을 설명합니다:
CC 및 CXX 환경 변수를 정의할 수 있습니다. 예를 들면:1$> CC=gcc 2$> CXX=g++ 3$> export CC CXX
방금 보여준 것처럼 커맨드 라인에서 이를 수행할 수 있지만, 빌드 스크립트 안에서 이러한 값을 정의하는 것이 더 나을 수 있습니다. 이 경우에는 export 명령이 필요하지 않습니다.
C 및 C++ 컴파일러 플래그를 직접 지정하려면,
CMAKE_C_FLAGS 및
CMAKE_CXX_FLAGS CMake 옵션을 사용하십시오.
Compiler Flags를 참조하십시오.
지정해야 할 플래그가 무엇인지 확인하기 위해,
--cflags 및
--cxxflags 옵션과 함께
mysql_config를 호출하십시오.
MySQL을 CMake로 설정한 후, 컴파일 단계에서 어떤 명령이 실행되는지 확인하려면 make 대신 make VERBOSE=1을 실행하십시오.
컴파일이 실패하는 경우,
MYSQL_MAINTAINER_MODE 옵션이 활성화되어 있는지 확인하십시오. 이 모드는 컴파일러 경고를 에러로 처리하므로, 이를 비활성화하면 컴파일이 계속 진행될 수 있습니다.
컴파일이 다음과 같은 에러로 실패하는 경우에는, 사용 중인 make 버전을 GNU make로 업그레이드해야 합니다:
1make: Fatal error in reader: Makefile, line 18: 2Badly formed macro assignment
또는:
1make: file `Makefile' line 18: Must be a separator (:
또는:
1pthread.h: No such file or directory
Solaris 및 FreeBSD는 문제가 있는 make 프로그램이 있는 것으로 알려져 있습니다.
GNU make 3.75는 동작하는 것으로 알려져 있습니다.
sql_yacc.cc 파일은 sql_yacc.yy로부터 생성됩니다. 일반적으로 빌드 과정에서 sql_yacc.cc를 생성할 필요는 없습니다. MySQL에는 미리 생성된 사본이 포함되어 있기 때문입니다. 그러나 이를 다시 생성해야 하는 경우, 다음과 같은 에러를 만날 수 있습니다:1"sql_yacc.yy", line xxx fatal: default action causes potential...
이는 사용 중인 yacc 버전이 불완전하다는 신호입니다. 보다 최신 버전의 bison(GNU 버전의 yacc)을 설치하고, 그것을 대신 사용해야 할 가능성이 큽니다.
1.75보다 오래된 버전의 bison은 다음과 같은 에러를 보고할 수 있습니다:
1sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded
실제로 최대 테이블 크기가 초과된 것은 아니며, 이 에러는 오래된 버전의 bison의 버그로 인해 발생합니다.
libmysql 클라이언트 라이브러리의 동작에 영향을 줍니다)을 CMake용 환경 변수에 다음 값을 설정하여 컴파일하십시오:1$> set CXXFLAGS=/D _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR
툴을 구하거나 업데이트하는 방법에 대한 정보는, Section 2.8, “Installing MySQL from Source”에 있는 시스템 요구 사항을 참조하십시오.
2.8.7 MySQL Source-Configuration Options
2.8.9 MySQL Configuration and Third-Party Tools