ठीक है, मैं इसे सबसे लंबे समय तक काम करने की कोशिश कर रहा हूं, और मुझे बस इसे सही काम करने के लिए प्रतीत नहीं होता है। मेरे पास तीन फाइलें हैं, main.c
, hello_world.c
, और hello_world.h
। किसी भी कारण से वे अच्छी तरह से संकलित नहीं लग रहे हैं, और मैं वास्तव में यह नहीं समझ सकता कि क्यों ...सी हेडर समस्या: # शामिल करें और "अपरिभाषित संदर्भ"
यहां मेरी स्रोत फ़ाइलें हैं। सबसे पहले hello_world.c:
#include <stdio.h>
#include "hello_world.h"
int hello_world(void) {
printf("Hello, Stack Overflow!\n");
return 0;
}
फिर hello_world.h, सरल:
int hello_world(void);
और फिर अंत में main.c:
#include "hello_world.h"
int main() {
hello_world();
return 0;
}
जब मैंने इसे जीसीसी में डाल दिया, यह क्या है मुझे मिलता है:
cc main.c -o main /tmp/ccSRLvFl.o: In function `main': main.c:(.text+0x5): undefined reference to `hello_world' collect2: ld returned 1 exit status make: *** [main] Error 1
कोई भी मेरी मदद करने में सक्षम है? मैं वास्तव में इस पर अटक गया हूं, लेकिन मुझे 99 प्रतिशत यकीन है कि यह वास्तव में एक साधारण फिक्स है।
धन्यवाद! उन छोटी सी चीज़ों में से एक जो प्रोग्रामर की यात्रा करते हैं। :) – user1018501
हालांकि हेडर गार्ड अनावश्यक हैं (इस उदाहरण में) यह एक अच्छा संकेत है – KevinDTimm
@ user1018501: यदि इस उत्तर ने आपकी समस्या हल की है, तो आपको इसे स्वीकार करना चाहिए। – Job