未明确引用`_imp__apr_getopt_init @ 16'

时间:2013-02-18 11:31:22

标签: c++ c linker-errors

我有一个库函数,我试图链接但是编译器通过在函数名称后附加“( imp _)”前缀来引发链接器错误。

我不明白为什么编译器使用“ imp _”作为函数名称的前缀,我不明白底层的链接器问题。

1 个答案:

答案 0 :(得分:0)

似乎是静态与动态链接问题。

编译器会将函数引用为 impl _ + funcname,如果它认为实际函数将放在 dynamic 库中。即实际的foobar实现在dll中,而 impl _foobar是一种使链接器开心的存根(foobar的地址在链接阶段是未知的,只有在应用程序在运行时加载dll时才会知道)。 / p>

因此,请验证您应该如何链接到该库(通常libs同时包含静态和动态变体)并根据它链接到它。