0

我正在尝试.lib在我的 Visual Studio 2012 C++ 项目中包含一个文件。该库是具体的 pHash 项目。我已将项目的头文件Project->Properties->Configuration Properties->VC++ Directories->Includes添加.libProject->Properties->Configuration Properties->VC++ Directories->Library Directories. pHash.lib已添加到 中的依赖项列表中Project->Properties->Configuration Properties->Linker->Input->Additional Dependencies。但是,即使我已经完成了所有这些,在尝试使用库时仍然会出现此错误:error LNK2019: unresolved external symbol "int __cdecl ph_dct_imagehash(char const *,unsigned __int64 &)" (?ph_dct_imagehash@@YAHPBDAA_K@Z) referenced in function _main.

我的代码如下所示:

#include <iostream>
#include "pHash.h"

using namespace std;

int ph_dct_imagehash(const char *file, ulong64 &hash);

int main()
{
   ulong64 tmp = 0;
   ulong64 &hash = tmp;
   const char *file = "C:\\users\\user\\desktop\\img1.jpg";

   ph_dct_imagehash(file, hash);

   return 0;
}
4

1 回答 1

0

您将不需要原型

int ph_dct_imagehash(const char *file, ulong64 &hash);

包括后pHash.h,后者将为您声明功能。

删除该行并检查任何编译器错误(如果有的话,将是无法找到函数的行ph_dct_imagehash)。也许您需要使用正确的命名空间作为前缀:

somephashnamespace::ph_dct_imagehash(file, hash);
于 2013-09-16T11:25:17.987 回答