我寫了一個簡單的彙編軟件(nasm)和一個簡單的C應用程序。我的C代碼從彙編代碼中調用了一個函數,但是我不知道如何編譯C代碼而沒有收到'未定義的參考'來自'extern int Sum()'的錯誤''線。如何鏈接ELF32程序集和C文件?
C代碼:
#include <stdio.h>
extern int Sum();
main()
{
int a1, a2, x;
x = Sum(a1, a2);
printf("value of x is: %d\n", x);
}
彙編代碼:
global _Sum
_Sum:
push ebp
mov ebp, esp
mov eax, [ebp+8]
mov ecx, [ebp+12]
add eax, ecx
pop ebp
ret
我將如何分別編譯這兩個文件,之後將它們鏈接在一起成一個統一的文件?
我知道這個問題是舊的:然而,人誰在這裏 - 鏈接的代碼,我已經在我的回答如下提供的參考書籍是巨大的資源來學習部件。希望你有機會檢查一下! – Arvind 2012-11-20 12:48:17