“fatal error: XYZ.h: No such file or directory” ठीक करें
स्केच ऐसी लाइब्रेरी का header include कर रहा है जो इंस्टॉल नहीं है, या किसी दूसरे नाम से है। Library Manager से सही लाइब्रेरी इंस्टॉल करें।
सामुदायिक ड्राफ़्ट — गलती बताएं
आपको क्या दिखता है
sketch.ino:3:10: fatal error: DHT.h: No such file or directory
3 | #include <DHT.h>
| ^~~~~~~
compilation terminated.
exit status 1
Compilation error: DHT.h: No such file or directorysketch.ino:3:10: fatal error: DHT.h: No such file or directory
3 | #include <DHT.h>
| ^~~~~~~
compilation terminated.
exit status 1
Compilation error: DHT.h: No such file or directory
Compiler को #include लाइन में लिखी header फ़ाइल नहीं मिली। लगभग हमेशा वजह यही होती है कि लाइब्रेरी अभी इंस्टॉल नहीं हुई — Library Manager में यह एक मिनट का काम है।
FlashReady के हर कोड ब्लॉक में वह लाइब्रेरी और version लिखा होता है जिससे वह कंपाइल हुआ, ताकि आप ठीक वही इंस्टॉल कर सकें।
तुरंत समाधान — क्रम से आज़माएँ
- 1
लाइब्रेरी इंस्टॉल करें
Sketch → Include Library → Manage Libraries खोलें, header या लाइब्रेरी का नाम खोजें (जैसे Adafruit की “DHT sensor library”), और Install दबाएँ।
- 2
उसकी dependencies भी इंस्टॉल करें
Arduino IDE 2 “Install all” का विकल्प देता है। Adafruit की सेंसर लाइब्रेरी को “Adafruit Unified Sensor” भी चाहिए।
- 3
header का नाम हूबहू मिलाएँ
LiquidCrystal_I2C.h, न कि LiquidCrystal_l2c.h। macOS और Linux पर छोटे-बड़े अक्षर (case) का फ़र्क पड़ता है।
- 4
देखें कि वह आपके बोर्ड को सपोर्ट करती है
कुछ लाइब्रेरी सिर्फ़ AVR के लिए होती हैं। Library Manager में हर लाइब्रेरी के साथ सपोर्टेड architectures लिखे होते हैं।
ऐसा क्यों होता है
कई लाइब्रेरी का header नाम एक ही है
“LiquidCrystal I2C” नाम की कई लाइब्रेरी हैं, जिनकी API अलग-अलग है। हमारे पेज पर वही लाइब्रेरी और version लिखा होता है जिससे कोड कंपाइल हुआ; दूसरी इंस्टॉल करने से does not name a type (English) जैसे दूसरे एरर आ सकते हैं।
लाइब्रेरी गलत फ़ोल्डर में है
हाथ से डाउनलोड की गई ZIP Documents/Arduino/libraries/<LibraryName>/ में जानी चाहिए, और .h फ़ाइल सबसे ऊपर (या src/ में) होनी चाहिए।
बोर्ड पैकेज वाली लाइब्रेरी नहीं मिल रही
WiFi.h, BluetoothSerial.h जैसी फ़ाइलें बोर्ड पैकेज के साथ आती हैं — सही बोर्ड चुनें (जैसे ESP32 Dev Module), Arduino Uno नहीं।
बोर्ड के अनुसार नोट्स
ESP32 vs ESP8266: ESP8266 के स्केच ESP8266WiFi.h इस्तेमाल करते हैं; ESP32 WiFi.h। गलत बोर्ड चुनने पर Wi-Fi header के लिए यही एरर आता है।
Parts: DHT22 · 16×2 I2C LCD — पिनआउट, वोल्टेज और लाइब्रेरी की जानकारी।
Did this fix it?
Thanks — that helps us keep this page right.