Chinaunix

标题: cygwin下能够编译windows可执行程序吗? [打印本页]

作者: zzghost    时间: 2007-03-27 14:18
标题: cygwin下能够编译windows可执行程序吗?
譬如我在cygwin下:
      gcc -g hello.c hello.exe
在cygwin下可以执行。
但是,双击hello.exe,就报找不到cygwin.dll。
能生成不依赖于cygwin的windows可执行程序吗?

[ 本帖最后由 zzghost 于 2007-3-27 14:20 编辑 ]
作者: tree.yuu    时间: 2007-03-27 15:40
假如你把cygwin安装在c:/cygwin下。
方法一:
将c:\cygin\bin\cygwin.dll拷贝到hello.exe所在的目录下。
方法二:
将c:/cygin/bin/cygwin.dll拷贝到c:\windows\system32下。
方法三(当机器上安装有cygwin时推荐):
在环境变量path中加上c:\cygwin\bin。
方法四(当机器上没有安装有cygwin时推荐):
在cygwin网站上下载一个cygwin运行时库,安装后,所有在cygwin下编译生成的程序就都可以运行。
作者: win_hate    时间: 2007-03-27 16:30
cc -mno-cygwin foo.c
作者: langue    时间: 2007-03-27 18:44
原帖由 win_hate 于 2007-3-27 16:30 发表
cc -mno-cygwin foo.c


这是一种方法,即用 MinGW 的头和库来编译、连接。

如果是发布二进制的软件,可以把 cygwin1.dll 以及其他必须的文件同你编译的 exe 一起发布。也可以指明:用户需要安装 Cygwin 方可使用。或者提供源代码,也行。

如果只是在本地使用,那么应该把 X:\cygwin\bin 添加到 PATH 环境变量里。进入 Cygwin BASH Shell 也可以。(进入 Cygwin BASH Shell 后必须的目录就会被自动添加进去)

.
作者: chen_gxing    时间: 2007-03-28 17:24
哦,原来这样。但也还是调用了cygwin的dll。
作者: win_hate    时间: 2007-03-28 18:24
原帖由 chen_gxing 于 2007-3-28 17:24 发表
哦,原来这样。但也还是调用了cygwin的dll。


-mno-cygwin 的就不用 cygwin 的 dll,但有些函数不支持,使用了那些函数就会编译失败。
作者: PCOS    时间: 2007-03-29 20:01
CYGWIN的作用就是把一个程序代码在多个系统中编译和移植(安装);哪样你的程序在MS和UNIX间...!嘻!嘻!嘻!
作者: zzghost    时间: 2007-03-30 04:17
原帖由 win_hate 于 2007-3-27 16:30 发表
cc -mno-cygwin foo.c


就是这个




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2