c - How to link two object files -
मेरे पास rfact.s और rfactmain.c
rfact.s:
<कोड> .text .p2align 4 .global rfact .type rfact, @function rfact: pushl% ईबीपी movl% esp,% ईबीपी pushl% EBX subl $ 4,% esp movl 8 (% ईबीपी),% EBX movl $ 1,% eax cmpl $ 1,% EBX jle .L53 लील -1 (% EBX),% eax movl% eax, (% esp) फोन rfact imull% EBX,% eax .L53: अपर $ 4,% esp popl% EBX popl% ईबीपी सेवानिवृत्त
rfactmain.c:
int main () {int x = rfact (4); वापसी 0; }
मैं एक 64 बिट सिस्टम पर हूं तो पहले मैं दोनों ऑब्जेक्ट फाइलें
gcc -m32 -c rfact.s gcc -m32 -c rfactmain.c
करके कर दूं
लेकिन मुझे एक त्रुटि मिलती है
जीसीसी-एम 32-ओ आरएफ आरएफएक्ट.ओ आरएफएक्टएमएएन.ओ / यूएसआर / बीन / एलडी: सीआरटी 1.ओ नहीं मिल सकता है: ऐसी कोई फ़ाइल या निर्देशिका / usr / bin / ld: crti.o नहीं मिल सकता है: ऐसी कोई फ़ाइल या निर्देशिका / usr / bin / ld: जब -lgcc_s / usr / bin / ld के लिए खोज असंगत /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libgcc_s.so लंघन: -lgcc_s नहीं मिल सकता है / usr / bin / ld: असंगत /usr/lib64/libc.so लंघन जब -lc / usr / bin / ld के लिए खोज: असंगत /usr/lib64/libc.a लंघन जब -lc / usr / bin / ld के लिए खोज: नहीं मिल सकता है - नियंत्रण रेखा / usr / bin / ld: असंगत /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libgcc_s.so लंघन जब -lgcc_s / usr / bin / ld के लिए खोज: -lgcc_s नहीं मिल सकता है / usr / bin / एलडी: crtn.o नहीं मिल सकता है: ऐसा कोई फ़ाइल या निर्देशिका संग्रह नहीं 2: त्रुटि: ld 1 बाहर निकलने की स्थिति
अगर मैं- m32 को हटाता हूं तो मुझे त्रुटि मिलती है (जो अपेक्षित है क्योंकि दोनों ऑब्जेक्ट फाइलें 32 बिट हैं)
जीसीसी -ओ आरएफ rfact.o rfactmain ओ / usr / bin / ld: इनपुट फ़ाइल `rfact.o की i386 वास्तुकला ': x86-64 उत्पादन / usr / bin / ld: i386 के साथ असंगत है इनपुट फ़ाइल` rfactmain.o की i386 वास्तुकला' i386 के साथ असंगत है: 86 -64 आउटपुट संग्रह 2: एरर: एलडी ने 1 निकास स्थिति लौटा दी
आपके पास नहीं है 32 बिट समर्थन सामग्री स्थापित संभवत: आपको जीसीसी-मल्टीलिब पैकेज या 32 बिट लाइब्रेरी पैकेज व्यक्तिगत रूप से चाहिए। अपने डिस्टो दस्तावेज़ीकरण और / या पैकेज प्रबंधक से परामर्श करें।
Comments
Post a Comment