【发布时间】: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?
【问题讨论】: