- 论坛徽章:
- 2
|
我在64位的ubuntu上面,有一个很简单的程序
$ cat test.c
int f(int x){
int i=(x/42);
return i;
}
int main(){
return 0;
}
然后尝试手工链接几个库来生成
$ gcc test.c -nostdlib /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o
错误信息是:
/usr/lib/x86_64-linux-gnu/crt1.o:在函数‘_start’中:
(.text+0x12):对‘__libc_csu_fini’未定义的引用
/usr/lib/x86_64-linux-gnu/crt1.o:在函数‘_start’中:
(.text+0x19):对‘__libc_csu_init’未定义的引用
/usr/lib/x86_64-linux-gnu/crt1.o:在函数‘_start’中:
(.text+0x25):对‘__libc_start_main’未定义的引用
collect2: error: ld returned 1 exit status
我这么做是想尝试一下<<程序员的自我修养>>里面提到的手工链接方式。我还缺少什么东西吗?
|
|