2012-11-30 109 views
2

我在我的C++解决方案(VS2012)中有一个LNK2019。我有以下几点:无法解析的外部符号错误链接DLL到LIB

  • class Matrix {...}
  • DLL中的静态的.lib这将消耗该.LIB。我已经在gui中设置了一个项目引用,我可以看到链接器下的'Command Line'属性页面上列出了.lib。

我把下面简单的代码一起

void Test() 
{ 
    Matrix m(10,10); 
    int z = m.Rows(); 
} 

这产生LNK2019找public: int __thiscall Common::Matrix::Rows(void) ...

我不明白的是为什么会出现链接错误:据我所见,我已经添加了.lib引用,并设置了所需的所有标头等,但它只是不会链接。我错过了什么?

+0

我不知道,但也许'dllimport'? –

+0

你能多显一点吗?例如。你的头文件中有什么,以及在Matrix类中如何定义Rows()函数?我想我知道答案,但我需要检查你现在在做什么。最常见的问题在MSDN文档中解决:http://msdn.microsoft.com/en-us/library/799kze2z%28v=vs.110%29.aspx – Tawnos

+0

@Tawnos:我注意到看着我的(旧)代码对于Matrix.cpp,我有一些内联修饰符 - 查看您的链接似乎是问题。你想添加一个响应,所以我可以标记它......谢谢! –

回答

0
+1

我的确切问题我认为与以下短语有关:'类似地,使用函数内联的项目尚未定义.cpp文件中的函数而不是头文件中的函数也将获得LNK2019。头文件包含在任何地方都被认为是合适的,但是只有当.cpp文件通过编译器时才会内联函数。因此,在其他模块中使用时,链接器将这些函数视为未解析的外部函数。 –

相关问题