【问题标题】:Problems with cygwin build dll for use in windows app在 Windows 应用程序中使用 cygwin 构建 dll 的问题
【发布时间】:2018-11-16 05:00:24
【问题描述】:

我使用 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 的错误。

谁能解释一下怎么做?谢谢。

【问题讨论】:

    标签: dll cygwin


    【解决方案1】:

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

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

    所以你需要定义你的目标是什么:Cygwin/Posix 或 Windows 并相应地选择编程风格和工具,你不能混用。

    【讨论】:

    • 您好,对于第一个问题,我构建了一个 DLL(依赖于 cygwin1.dll),并使用 Visual Studio 创建了一个 Windows 控制台应用程序来加载 DLL,并在其中调用一个函数。如果函数包含 malloc,则应用程序崩溃。那么为什么会有多个malloc呢?谢谢。
    • Visual Studio 程序使用 Windows C malloc,Cygwin DLL 使用 cygwin1.dll 中的那个。您需要对应用程序和 dll 使用相同的工具
    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 2017-10-03
    • 2020-10-04
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    相关资源
    最近更新 更多