在Windows应用中使用cygwin生成dll的问题

时间:2018-11-16 05:00:25

标签: dll cygwin

我使用Cygwin为Windows应用程序使用的DLL构建源代码。

当我使用GCC core / GCC g++时,如果应用程序在DLL中调用函数(包括printfmalloc),则该应用程序将崩溃。

当我使用Mingw64-x86_64-gcc-core / Mingw64-x86_64-gcc-g++时,它会报告类似sys/socket.h:No such file or directory的错误。

有人可以解释如何做吗?谢谢。

1 个答案:

答案 0 :(得分:1)

第一个问题是由于尝试仅使用cygwin特定工具来构建独立的DLL(不依赖于cygwin1.dll)。 cygwin1.dll中存在多个malloc和其他C库调用之间存在冲突。

第二个原因是由于sys/socket.h在Windows上不存在 请参阅以获取可能的解决方案: Using sys/socket.h functions on windows

因此,您需要定义目标是Cygwin / Posix或Windows,并相应地选择编程样式和工具,不能混用。