Windows पर Rust: 5 मिनट में 'linker 'cc' not found' त्रुटि को ठीक करें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

प्रस्तावना: "लाल ड्रैगन" से पहली मुलाकात

\n\n

आपने अभी-अभी Rust सीखना शुरू किया है। कंपाइलर डाउनलोड किया, अपना पहला hello.rs लिखा, cargo build चलाया... और टर्मिनल लाल संदेश से भड़क उठा: «linker 'cc' not found»। परिचित लग रहा है? यदि आप Windows 10 पर WSL Debian उप-प्रणाली का उपयोग कर रहे हैं, तो यह त्रुटि सिस्टम प्रोग्रामिंग की दुनिया से एक क्लासिक "नमस्ते" है।

\n\n

घबराएं नहीं। यह Rust का बग नहीं है, यह पर्यावरण सेटअप की एक विशेषता है। इस लेख में हम न केवल इस समस्या को हमेशा के लिए हल करेंगे, बल्कि इस बारे में भी बात करेंगे कि बिल्ड प्रक्रिया को कैसे अनुकूलित करें ताकि आपका कोड तेजी से कंपाइल हो। आखिरकार, Rust अपने प्रदर्शन के लिए प्रसिद्ध है, और हमें कंपाइलर को काम करने के लिए सर्वोत्तम उपकरण देने चाहिए।

\n\n

«linker 'cc' not found» त्रुटि क्यों होती है?

\n\n

दुश्मन को समझने के लिए, उसे पहचानना ज़रूरी है। Rust एक कंपाइल की जाने वाली भाषा है। जब आप cargo build लिखते हैं, तो कंपाइलर rustc आपके कोड को मशीन कोड में बदल देता है। लेकिन अंतिम चरण लिंकिंग (ऑब्जेक्ट फ़ाइलों को एक्ज़ीक्यूटेबल में जोड़ना) है। यह काम एक बाहरी प्रोग्राम करता है - लिंकर।

\n\n

डिफ़ॉल्ट रूप से, Linux सिस्टम (WSL Debian सहित) पर, Rust लिंकर cc की खोज करता है। यह एक सिम्बोलिक लिंक है, जो आमतौर पर gcc या clang की ओर इशारा करता है। यदि आपके WSL सिस्टम में C कंपाइलर (GCC या Clang) स्थापित नहीं है, तो cc लिंक मौजूद नहीं है। Rust को पता नहीं चलता कि आपके प्रोजेक्ट को कैसे लिंक किया जाए, और यह एक घातक त्रुटि देता है।

\n\n

समस्या की जड़: WSL Debian - न्यूनतम स्थापना

\n

जब आप Microsoft Store से WSL Debian स्थापित करते हैं, तो आपको एक खाली सिस्टम मिलता है। इसमें न तो GCC है, न Make, और न ही कोई अन्य डेवलपर टूल। Rust में C लिंकर शामिल नहीं है - यह सिस्टम पर्यावरण की जिम्मेदारी है।

\n\n

विधि #1: त्वरित समाधान (GCC स्थापित करना)

\n\n

सबसे सरल और सही तरीका C पर डेवलपमेंट के लिए मानक टूल का सेट स्थापित करना है। WSL Debian टर्मिनल खोलें और निम्नलिखित चलाएँ:

\n\n
sudo apt update\nsudo apt install build-essential
\n\n

पैकेज build-essential एक मेटा-पैकेज है जो gcc, g++, make और सबसे महत्वपूर्ण, /usr/bin/cc लिंक बनाता है। स्थापना के बाद जाँच करें:

\n\n
which cc\n# दिखाना चाहिए: /usr/bin/cc
\n\n

अब फिर से cargo build चलाएँ - त्रुटि गायब हो जाएगी। Rust को लिंकर मिल गया।

\n\n

प्रदर्शन के लिए यह क्यों महत्वपूर्ण है?

\n

मानक GCC का उपयोग करके, आपको एक स्थिर और अनुकूलित लिंकर मिलता है। Rust आपके प्रोजेक्ट को न्यूनतम ओवरहेड के साथ बिल्ड करेगा। अनुकूलन सही टूलकिट से शुरू होता है।

\n\n

विधि #2: सटीक सेटअप (Clang स्थापित करना)

\n\n

यदि आप LLVM और Clang के प्रशंसक हैं (और Rust भी अंदरूनी रूप से LLVM का उपयोग करता है), तो आप GCC के बजाय इसे स्थापित कर सकते हैं। इससे कुछ प्रोजेक्ट्स पर लिंकिंग की गति में थोड़ी वृद्धि हो सकती है।

\n\n
sudo apt install clang lld\n# यदि लिंक नहीं है तो मैन्युअल रूप से बनाएँ\nsudo ln -s /usr/bin/clang /usr/bin/cc
\n\n

जाँच:

\n
cc --version\n# Clang दिखाना चाहिए
\n\n

महत्वपूर्ण: LLD (LLVM Linker) अक्सर क्लासिक GNU ld से तेज़ काम करता है। बड़े Rust प्रोजेक्ट्स के लिए, यह बिल्ड समय को 10-20% तक कम कर सकता है। Clang स्थापित करना सिर्फ त्रुटि को ठीक करना नहीं है, यह कंपाइलेशन प्रदर्शन का अनुकूलन है।

\n\n

विधि #3: वैकल्पिक तरीका (मैन्युअल रूप से लिंकर निर्दिष्ट करना)

\n\n

कभी-कभी ऐसी स्थितियाँ होती हैं जब आप GCC या Clang स्थापित नहीं करना चाहते (उदाहरण के लिए, सीमाओं वाले प्रोडक्शन सर्वर पर)। आप स्पष्ट रूप से Rust को बता सकते हैं कि किस लिंकर का उपयोग करना है। लेकिन ध्यान दें: स्थापित लिंकर के बिना यह तरीका काम नहीं करेगा।

\n\n

फ़ाइल ~/.cargo/config.toml (या वैश्विक सेटिंग के लिए /.cargo/config.toml) बनाएँ:

\n\n
[target.x                

ब्लॉग

पुस्तक अनुशंसाएँ