错误LNK2019:函数中引用了未解析的外部符号CheckLr

时间:2016-08-17 10:14:12

标签: c++ visual-c++ dll linker

legitmate_relationship.dll:基本上这个dll用于其中一个单元测试项目unittest_legitimate_relationship。

一旦我构建unittest_legitimate项目,就会给出一些链接器错误。

错误LNK2019:未解析的外部符号CheckLr在函数“private:bool __cdecl LrTester :: LrTest()

中引用

这里是函数defalcation,我将在我的单元测试项目中调用,并在“legitmate_relationship.h”头文件中声明

#ifdef __cplusplus
extern "C"
{
#endif

DLL_IMPORT (bool_t)
CheckLr(STD_HANDLE hPrincipal, STD_HANDLE hCollectionIn, STD_HANDLE hCollectionOut);

#ifdef __cplusplus
}

函数在文件“lrrule.cpp”

中定义如下
DLL_EXPORT (bool_t)
CheckLr(STD_HANDLE hCollectionIn, STD_HANDLE hCollectionOut, STD_HANDLE hPrincipal)
{   

}  

为了在unittest_legitimate项目中使用checklr函数,我在附加依赖中添加了.lib文件引用。这样功能定义应该可用于项目。

如果我正在编译unittest合法项目,我会收到如上所述的链接器错误。

在lrtest.cpp中调用checklr():

CheckLr((STD_HANDLE)permissionCollectionIn, (STD_HANDLE)permissionCollectionOut, (STD_HANDLE)principal);

我不知道如何解决此类链接器错误。谢谢。

1 个答案:

答案 0 :(得分:0)

1.要检查的三件事,legitrelasionship.dll项目和unittest_legitimate-relationship.exe项目应该是相同的:

MT / MD

86/64

CPLUSPLUS / C

2. legitrelasionship.dll项目生成一个legitrelasionship.lib文件。 unittest_legitimate-relationship.exe项目应链接到此legitrelasionship.lib文件。