Re: Linker and undefined function references
Posted: Sat Aug 01, 2009 9:00 am
Just for testing, I came up with this sample Asm/C program:
And compiling it with
works perfectly...
However,
does not, due to: "test.asm:(.text+0xa): undefined reference to `global_var'"...
I think I'm missing something about C-assembly interoperability...
Code: Select all
segment .data
segment .bss
segment .text
global happy
happy:
push ebp
mov ebp, esp
mov eax, 5
pop ebp
ret
Code: Select all
#include <stdio.h>
extern long happy();
int main(){
printf("I got: %d\n", happy());
return 0;
}
Code: Select all
nasm test.asm -o test.o -f elf32
gcc -m32 main.c test.o -o experiment
However,
Code: Select all
segment .data
segment .bss
segment .text
extern global_var
global happy
happy:
push ebp
mov ebp, esp
mov eax, 5
add eax, [global_var]
pop ebp
ret
Code: Select all
#include <stdio.h>
extern long happy();
int global_var = 3;
int main(){
printf("I got: %d\n", happy());
return 0;
}
I think I'm missing something about C-assembly interoperability...