0

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

我不明白为什么编译器会在函数名称前加上“ imp _”前缀,而且我不明白底层的链接器问题。

4

1 回答 1

0

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

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

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

于 2013-02-18T11:54:10.970 回答