如题
离线
把 编译好的应用程序拷贝出来,执行.
应该会提示缺少哪个 dll 之类的, 依此反复执行.
嫌麻烦可以把 cygwin\bin 的都拷出来.
离线
你的应用程序使用了 cygwin提供的POSIX API吗?如果用了,就把 cygwin*.dll 和 exe 复制到同一个文件夹.
如果不需要posix api,可以使用-mno-cygwin标志编译它,它不依赖于cygwin,但它将是一个本地Windows应用程序。通常,只需要一个真正的shell(Bash)来配置和构建应用程序,但实际上并不需要Cygwin的POSIX功能。
另一种选择是安装MSYS+MinGW,这是Cygwin的一个轻量级fork, 默认情况下生成本机Windows应用程序, 我记得Qt安装包里面自带了。
搜索: qt-opensource-windows-x86-5.13.2.exe (很大)
或者使用Cygwin本身的MinGW编译器。它们应该可以通过普通的Cygwin软件包管理器获得。然后使用MinGW编译器将项目配置为交叉编译。
离线
Cygwin是GPL版权,按照法律要求你必须连同你的所有源代码分发。不想遵守GPL可以用MinGW,类似Cygwin的东西,但是POSIX函数不全。如果你的程序是一行没改的Unix程序,基本不用改动就能移植到Cygwin,而移植到MinGW需要一些改动。如果你的程序是自己写的,没有多少别人的东西,大概率直接换MinGW就可以。多数开源软件库也自带MinGW或者MSVC支持,不需要改就可以直接MinGW编译,不需要Cygwin。Cygwin是给特别特别老的代码准备的。
离线
感谢楼上各位大侠, 我用 cygwin 自带的 i686-w64-mingw32-gcc 编译成功了, 用 exescope 看了没有依赖 cygwin*.dll, 看来应该没啥问题了.
离线
感谢楼上各位大侠, 我用 cygwin 自带的 i686-w64-mingw32-gcc 编译成功了, 用 exescope 看了没有依赖 cygwin*.dll, 看来应该没啥问题了.
那就是你的代码没有依赖POSIX库,相当于你把Cygwin当MinGW用。
离线