您的位置:首页 > 其它

cygwin编译的win32程序不需要cygwin1.dll库的方法(1)

2011-07-07 19:55 295 查看
cygwin提供了在windows下使用gcc,g++编译器的方法,但是在cygwin下编译的程序,运行的时候需要cygwin1.dll库

以下文章翻译自国外网站http://digipen2.xmmg.com/dpweb/docs/mno-cygwin.html

简单的代码(注:以下都是在cygwin环境下)

#include <stdio.h>

int main(void)
{
printf("Hello\n");
return 0;
}


编译链接如下:

gcc -Wall hello.c -o hello-cygwin.exe


使用cygcheck(cygwin tools)来看运行时依赖的库

C:\sandbox\CS120\gcc>cygcheck ./hello-cygwin.exe
.\hello-cygwin.exe
C:\cygwin\bin\cygwin1.dll
C:\WINNT\system32\ADVAPI32.DLL
C:\WINNT\system32\NTDLL.DLL
C:\WINNT\system32\KERNEL32.DLL
C:\WINNT\system32\RPCRT4.DLL


编译不需要cygwin1.dll库支持的可执行文件

gcc -mno-cygwin -Wall hello.c -o hello-no_cygwin.exe


查看运行时依赖的库

C:\sandbox\CS120\gcc>cygcheck ./hello-nocygwin.exe
.\hello-nocygwin.exe
C:\WINNT\system32\msvcrt.dll
C:\WINNT\system32\KERNEL32.dll
C:\WINNT\system32\ntdll.dll


可以看出不依赖cygwin1.dll了

实际上这种方法在最新版本的cygwin中已经不可用了,替代方法见

/article/11487196.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: