当前位置: 技术问答>linux和unix
如何静态链接
来源: 互联网 发布时间:2016-10-26
本文导语: 就写个简单的程序,如何静态链接? 以前没接触过,网上找的好像都不行。 比如: #include int main() { printf("hellon"); return 0; } 如何编译成静态的? 要制定libc吗? | 可以这样试试: gcc -static main.c -L...
就写个简单的程序,如何静态链接?
以前没接触过,网上找的好像都不行。
比如:
#include
int main()
{
printf("hellon");
return 0;
}
如何编译成静态的?
要制定libc吗?
以前没接触过,网上找的好像都不行。
比如:
#include
int main()
{
printf("hellon");
return 0;
}
如何编译成静态的?
要制定libc吗?
|
可以这样试试:
gcc -static main.c -L/your-path -lfoo
注:-L后面是路径,-l后面是库的名称,比如-lc、-lm,等等。
|
加 -static 选项即可
把你的代码复制main.c ,然后
gcc -static main.c
------------------------
objdump -T a.out
a.out: file format elf32-i386
objdump: a.out: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols
把你的代码复制main.c ,然后
gcc -static main.c
------------------------
objdump -T a.out
a.out: file format elf32-i386
objdump: a.out: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols
|
gcc -static -static-libgcc
|
你要将main函数编译成静态的么??
一般来说静态库都是一些方法,不包含main函数的!
可使用ar命令生成,要使用生成的库的话,就使用-L+库路径名。。
一般来说静态库都是一些方法,不包含main函数的!
可使用ar命令生成,要使用生成的库的话,就使用-L+库路径名。。