使用 mingw64 编译静态 cURL 时未定义对 difftime64 的引用
Undefined reference to difftime64 when compiling static cURL with mingw64
我正在尝试为 Windows 嵌入构建一个 static executable
cURL
:
- MinGW-64 (x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z link)
- 来自 official website
的预编译 CURL 包
直到 link 阶段我还剩下一个 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
import name 或者告诉 linker difftime64
实际上是 difftime
?
您可以从 winlibs.com 获得最新版本的 MinGW-64 的独立构建。
我正在尝试为 Windows 嵌入构建一个 static executable
cURL
:
- MinGW-64 (x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z link)
- 来自 official website 的预编译 CURL 包
直到 link 阶段我还剩下一个 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
import name 或者告诉 linker difftime64
实际上是 difftime
?
您可以从 winlibs.com 获得最新版本的 MinGW-64 的独立构建。