由于命名约定混乱导致链接时mingw未解析外部

时间:2014-03-05 11:44:23

标签: c++ linker mingw mingw32

我徒劳地试图使用emerge windows工具编译kmymoney

在连接kmymoney

之前似乎一切顺利

我收到了大量未解决的参考文献。

看来问题是我链接的库是在导出时没有特定于窗口"_imp__"的情况下构建的,但是当我编译kmymoney时,链接器正在期待"_imp__" +错位名称

例如,链接器正在寻找_imp___ZNK7KLocale28negativeMonetarySignPositionEv 但导出名为_ZNK7KLocale28negativeMonetarySignPositionEv

我假设我必须传递另一个标志或从gcc中删除一个标志,告诉它寻找正确的导出。但我不知道该怎么做。并且找不到所需的文档。即使我这样做,我也不确定将它放在cmake文件中的哪个位置。

任何指针都会非常感激。

编辑:

我发现这些库实际上确实有_imp__前缀

似乎缺少下划线

当我找到一个缺少的函数时,我得到以下

r:\lib>nm *.a | grep _ZNK7KLocale28negativeMonetarySignPositionEv
00000000 T __ZNK7KLocale28negativeMonetarySignPositionEv
00000000 I __imp___ZNK7KLocale28negativeMonetarySignPositionEv

显然前缀就在那里。但看起来它缺少第一个下划线

前缀为__imp__,而链接器正在寻找_imp__

我有什么想法可以解决这个问题吗?

0 个答案:

没有答案