मैं उबंटू का उपयोग करके एक साधारण कर्नेल बनाने की कोशिश कर रहा हूं। टर्मिनल में मैंi386 इनपुट फ़ाइल का आर्किटेक्चर i386 के साथ असंगत है: x86-64
ld -Ttext 0x1000 -o kernel.bin loader.o main.o Video.o
टाइप किया लेकिन मैं बदले में निम्न त्रुटि संदेश मिल गया:
ld: i386 architecture of input file `loader.o' is incompatible with i386:x86-64 output
ld: warning: cannot find entry symbol _start; defaulting to 0000000000001000
यह समाधान था। X86_64 पर 32-बिट ऐप्स को संकलित/लिंक करते समय, 'elf_i386' पर अनुकरण सेट करने से सही एल्फ प्रारूप प्रदान किया जाता है। तो, उदाहरण के लिए, यदि आप 'nasm -f elf file.asm -o file.o' के साथ एक असेंबलर ऐप संकलित करते हैं, तो लिंक कमांड' ld -m elf_i386 -o exename file.o' है। –
'-o file.o file' को' -o फ़ाइल फ़ाइल.ओ' 'से प्रतिस्थापित करना न भूलें। – Ruslan