我没有可以共享的特殊代码来问这个问题,但是我编写了一个C++代码(它甚至可以是一个简单的Hello程序)编译到一个 exe 文件中,它要求通过%path%或在与exe一起运行的文件夹中运行cygwin1.dll (用于运行时)。
如果需要libstdc++-6,我可以使用标记-static或-static-libstdc++。但是,为了不依赖cygwin1.dll文件执行exe,我能做些什么呢?我应该使用其他编译器来代替吗?
Ps:我期待一些类似这样的解决方案,如果有意义的话。MinGW .exe requires a few gcc dll's regardless of the code?
此外,我不希望创建或使用单独的安装程序将dll添加到适合我的情况下的位置。
发布于 2022-05-24 00:44:06
正如注释中所讨论的,Cygwin内部的本机gcc以Cygwin为目标。你希望GCC以mingw32为目标,而不是以Cygwin为目标。虽然你可以将GCC安装在Cygwin内部,作为一个交叉编译器,但MSYS的土生土长GCC工作得很好,我也会这样建议的。
请注意,如果您需要一个在MINGW中不可用的库,那么从Cygwin提取这个库基本上是行不通的。考虑到这是一条硬线:永远不要将依赖Cygwin的dll与非Cygwin依赖的dll混合。将Cygwin视为一个子系统,它恰好可以直接从Win32启动,而不是Win32库。
MINGW已经有了一段时间的线程,但是很多时候端口都不能工作。如果使用p线程的程序调用fork(),则它将无法工作。那时你就需要Cygwin了。
https://stackoverflow.com/questions/72353536
复制相似问题