Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 컴파일 문제 해결 가이드: CMake 재설정과 컴파일러 옵션 완벽 정리

MySQL을 컴파일하는 과정에서 발생하는 일부 문제는 초기 설정(configuration)이 제대로 이루어지지 않았기 때문일 수 있습니다. 이럴 때 가장 확실한 해결책은 설정을 처음부터 다시 수행하는 것입니다.

CMake를 이전에 실행한 직후 곧바로 다시 실행하면, 이전 실행 시점에 수집된 정보가 그대로 사용될 가능성이 있습니다. 이 정보는 CMakeCache.txt 파일에 저장되어 있으며, CMake가 시작될 때 해당 파일이 존재하면 그 내용을 읽어 들여 올바른 정보라고 가정합니다. 하지만 설정을 변경한 후에는 이 가정이 더 이상 성립하지 않습니다.

또한 CMake를 실행할 때마다 반드시 'make' 명령을 다시 실행하여 재컴파일해야 합니다. 이전 빌드에서 생성된 오브젝트 파일은 서로 다른 설정 옵션으로 컴파일된 것이므로, 재컴파일 전에 먼저 삭제하는 것이 좋습니다.

기존의 오브젝트 파일이나 설정 정보가 현재 설치에 영향을 주는 것을 방지하려면, CMake를 다시 실행하기 전에 아래 명령어를 먼저 실행해야 합니다.

Unix/Linux 환경에서 초기화

shell> make clean
shell> rm CMakeCache.txt

Windows 환경에서 초기화

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

소스 트리 외부(out-of-source)에서 빌드한 경우에는 CMake를 다시 실행하기 전에 빌드 디렉터리 자체를 삭제하고 새로 생성해야 합니다. 참고로 일부 시스템에서는 시스템 헤더(include) 파일의 차이로 인해 경고 메시지가 출력될 수 있으나, 이는 대개 무해합니다.

컴파일러 지정하기

사용할 C 및 C++ 컴파일러를 직접 지정하려면 CCCXX 환경 변수를 정의하면 됩니다.

shell> CC=gcc
shell> CXX=g++
shell> export CC CXX

컴파일러 플래그 지정하기

사용자가 직접 C 및 C++ 컴파일러 플래그를 지정하고 싶다면 CMAKE_C_FLAGSCMAKE_CXX_FLAGS CMake 옵션을 활용할 수 있습니다.

어떤 플래그를 지정해야 할지 모르겠다면, mysql_config 유틸리티를 --cflags--cxxflags 옵션과 함께 실행하여 필요한 플래그 목록을 확인할 수 있습니다.

컴파일 과정 디버깅하기

CMake로 MySQL 구성을 마친 후 컴파일 단계에서 실제로 어떤 명령이 실행되는지 확인하려면, 'make' 대신 'make VERBOSE=1'을 실행하세요. 상세한 빌드 로그를 통해 문제 원인을 파악하는 데 큰 도움이 됩니다.

컴파일이 계속 실패한다면 MYSQL_MAINTAINER_MODE 옵션이 활성화되어 있는지 확인해 보세요. 이 모드는 컴파일러 경고를 오류로 간주하기 때문에, 사소한 경고조차 빌드 실패의 원인이 될 수 있습니다. 이 옵션을 비활성화하면 컴파일이 정상적으로 진행되는 경우가 많습니다.