对"_imp__apr_getopt_init@16"的未定义引用

Undefined reference to `_imp__apr_getopt_init@16'

本文关键字:未定义 引用 init@16 apr imp getopt      更新时间:2023-10-16

我试图链接一个库函数,但编译器在函数名后面加上"(imp_)"前缀,从而引发链接器错误。

我不明白为什么编译器在函数名称前加上"imp_",我也不明白潜在的链接器问题。

看起来像是静态与动态链接的问题。

如果编译器认为实际函数将被放置在动态库中,那么它将引用函数为impl_+funcname。也就是说,实际的foobar实现在dll中,impl_foobar是一种让链接器满意的存根(foobar的地址在链接阶段是未知的,只有当应用程序在运行时加载dll时才会知道)。

因此,验证您应该如何准确地链接到该库(通常库有静态和动态两种变体),并根据这一点链接到它。