使用mingw64编译静态cURL时对difftime64的未定义引用

使用mingw64编译静态cURL时对difftime64的未定义引用,curl,mingw,mingw-w64,Curl,Mingw,Mingw W64,我正在尝试为Windows嵌入cURL构建一个静态可执行文件: MinGW-64(x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z) 来自的预编译CURL包 在链接阶段之前,我的体验是相当直接的,在链接阶段,我还有一个链接器错误 third-party\lib\static\curl-7.73\lib\libssh2.a(session.o):(.text+0x367): undefined reference to `__imp__difftime6

我正在尝试为Windows嵌入
cURL
构建一个
静态可执行文件

  • MinGW-64(x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z)
  • 来自的预编译CURL包
在链接阶段之前,我的体验是相当直接的,在链接阶段,我还有一个
链接器错误

third-party\lib\static\curl-7.73\lib\libssh2.a(session.o):(.text+0x367): undefined reference to `__imp__difftime64'
此函数似乎来自
C标准库
,最初命名为
difftime
)。出于我不理解的原因,当
session.o
构建时,该符号似乎已从
difftime
重命名为
difftime64

我试图直接在源代码中复制:

/* 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

不幸的是,这种天真的方法不起作用,
链接器错误仍然存在。有没有办法重命名为
session.o
使用
bintutils
导入名称,或者告诉链接器
difftime64
实际上是
difftime64

你可以从中获得最新版本的MinGW-64的独立版本。

我刚刚试过,但不幸的是,链接器错误仍然存在。您可以尝试使用较新的MinGW/GCC吗?您可以从获得最新版本的独立构建。使用给定的工具链,它可以完美地工作!非常感谢,我想我得到了一个非常新的GCC工具链,但你让我想出了一个非常最新的工具链!