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 को फिर से चलाने से पहले बिल्ड डायरेक्टरी को हटाना और पुनः बनाना होगा। कुछ सिस्टम पर, सिस्टम इन्क्लूड फाइलों में अंतर के कारण चेतावनी हो सकती है।
यह परिभाषित करने के लिए कि किन 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 विकल्प सक्षम है या नहीं। यह मोड कंपाइलर चेतावनियों को त्रुटियों का कारण बनाता है, इसलिए इसे अक्षम करने से कंपाइलेशन हो सकता है।