【问题标题】:Undefined reference to difftime64 when compiling static cURL with mingw64使用 mingw64 编译静态 cURL 时对 difftime64 的未定义引用
【发布时间】:2020-11-02 06:52:26
【问题描述】:

我正在尝试为 Windows 嵌入 cURL 构建一个 static executable

  • MinGW-64 (x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z link)
  • 来自official website 的预编译 CURL 包

在链接阶段我还剩下一个linker error

third-party\lib\static\curl-7.73\lib\libssh2.a(session.o):(.text+0x367): undefined reference to `__imp__difftime64'

这个函数似乎来自C standard library,最初命名为difftime<time.h>)。由于我不明白的原因,在构建 session.o 时,该符号似乎已从 difftime 重命名为 difftime64

我尝试在我的源代码中直接复制function definition

/* static __inline__ I don't want inline anymore                */
/*                   I want to export this function for libssh2 */
double _difftime64( __time64_t __t1, __time64_t __t0 )
{
  return (double)((long double)(__t1) - (long double)(__t0));
}

// I also tried to name the function "difftime64", "_difftime64" and "__difftime64"
// With the same results

不幸的是,这种幼稚的方法不起作用,linker error 仍然存在。有没有办法用bintutils 重命名为session.o 导入名称或告诉链接器difftime64 实际上是difftime

【问题讨论】:

    标签: curl mingw mingw-w64


    【解决方案1】:

    您可以从winlibs.com 获得最新版 MinGW-64 的独立构建。

    【讨论】:

    • 我刚试过,但不幸的是链接器错误仍然存​​在。
    • 你能试试更新的 MinGW/GCC 吗?您可以从winlibs.com 获得最新版本的独立版本。
    • 使用给定的工具链,它可以完美运行!非常感谢,我以为我有一个最新的 GCC 工具链,但你让我找到了一个最新的工具链!
    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2012-08-16
    • 2023-03-10
    • 2014-04-27
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多