当前位置: 技术问答>linux和unix
cygwin环境下编译的问题
来源: 互联网 发布时间:2016-06-01
本文导语: 下面这个程序 #include int main() { printf(“123n”); } 当在cygwin环境下用 $ gcc printf.c –o printf.exe 编译时生成的printf.exe文件可以执行 但当这样编译 $ gcc –c printf.c –o printf.o 生成printf.o文件,然后 $ld printf.o /...
下面这个程序
#include
int main()
{
printf(“123n”);
}
当在cygwin环境下用
$ gcc printf.c –o printf.exe
编译时生成的printf.exe文件可以执行
但当这样编译
$ gcc –c printf.c –o printf.o
生成printf.o文件,然后
$ld printf.o /usr/lib/libc.a –o printf.exe
生成的printf.exe文件执行时会出错
这是怎么回事?
#include
int main()
{
printf(“123n”);
}
当在cygwin环境下用
$ gcc printf.c –o printf.exe
编译时生成的printf.exe文件可以执行
但当这样编译
$ gcc –c printf.c –o printf.o
生成printf.o文件,然后
$ld printf.o /usr/lib/libc.a –o printf.exe
生成的printf.exe文件执行时会出错
这是怎么回事?
|
我手头上没有cygwin的环境了,你这样试试看:
$ gcc –c printf.c –o printf.o
生成printf.o文件,然后
$ld -static –o printf.exe printf.o /usr/lib/libc.a
$ gcc –c printf.c –o printf.o
生成printf.o文件,然后
$ld -static –o printf.exe printf.o /usr/lib/libc.a
|
|
呵呵,楼上的仁兄,他用的是cygwin,不是普通的linux,所以-dynamic-linker对他来说基本是废弃的参数了...