【发布时间】:2011-05-28 18:43:13
【问题描述】:
我想用 gcc 静态链接我包含的库(例如 stdio),所以我使用 -static 选项。
我的环境是ubuntu 10.10。
gcc版本是4.4.5。
我使用的编译命令是:gcc -static -o output.out input.c
以下是我的源代码。
包括
int main(){
printf("你好世界");
返回 0;
}
在我编译它并使用 -static 选项后,我 objdump 可执行文件。
我发现 printf 实际上被称为 _IO_printf。
我又写了一个程序,下面是源代码。
包括
int main(){
返回 0;
}
我使用相同的选项编译此源代码并 objdump 新的可执行文件。
但是,我找不到 _IO_printf。
我的问题是为什么我不能在第二种情况下处理 _IO_printf。我已经静态链接了我包含的库。
谁能帮我解决这个问题,谢谢。
【问题讨论】:
-
不要使用 HTML 来格式化您的代码。