在使用MinGW时,我使用MSVC '08编译的特定SDK中的dll库。是的,我有未定义的参考。
undefined reference to `Some::NameSpace::Here::Class::method()'
在我的项目中,我正在使用MinGW comliler和Qt(因为我正在制作跨平台应用程序),并且提供SDK的Linux库工作得很好。
1)我尝试使用MinGW FAQ中提到的pexports
工具,但没有成功。仍然是相同的未定义引用(错误masseges没有变化)。
在我的.def文件中,我有以下几行:
?Method@Class@Here@NameSpace@Some@@QAE_NIIGW4eReturnType@234@@Z
2)extern "C"
也无济于事。我用它包围了每个SDK .h包括可能的地方(一个标题包含模板定义,所以我无法包围它)。
奇怪的是,而不是:
undefined reference to `_imp___ZN6IClass6Methodci'
我得到了:
undefined reference to `Some::NameSpace::Here::Class::method()'
In function `ZN11MyClass21MethodEv':
所以我觉得我搞砸了名字错误。