使用mingw64编译静态cURL时对difftime64的未定义引用
我正在尝试为Windows嵌入使用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
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工具链,但你让我想出了一个非常最新的工具链!