C++ 搜索声明方法的库/头文件

C++ 搜索声明方法的库/头文件,c++,libraries,C++,Libraries,我必须在我的项目中使用相机制造商提供的库。我正在使用Visual Studio 2015。在编写include之后,我已经合并了VS2015建议的所有头文件 我在VS 2015中指定了包含文件和库的路径,它可以找到大多数方法 问题:编译代码时,出现以下链接器错误: 错误LNK2019未解析的外部符号公共:未签名的整数\uuu cdecl LvModule::GetInt32unsigned int,int*?GetInt32@LvModule@@QEAAIIPEAH@Z在函数public:voi

我必须在我的项目中使用相机制造商提供的库。我正在使用Visual Studio 2015。在编写include之后,我已经合并了VS2015建议的所有头文件

我在VS 2015中指定了包含文件和库的路径,它可以找到大多数方法

问题:编译代码时,出现以下链接器错误:

错误LNK2019未解析的外部符号公共:未签名的整数\uuu cdecl LvModule::GetInt32unsigned int,int*?GetInt32@LvModule@@QEAAIIPEAH@Z在函数public:void\uu cdecl CCamera::CloseCameravoid中引用?CloseCamera@CCamera@@QEAAXXZ ImageProcessingSidd C:Path\ImageProcessing.obj 1


问题:如何在系统中搜索定义了GetInt32方法的头文件/库。在使用诸如kgrab之类的命令搜索头文件之前,我见过有人不确定要搜索库的确切命令,您首先需要在安装Visual Studio的“开始”菜单附近打开Visual Studio命令提示符

作为初始演示,仅在一个库上运行该命令以查看结果:

dumpbin mfc120.lib /exports
必须从实际包含该库的目录运行

然后按如下方式运行程序dumpbin:

dumpbin *.lib /exports | findstr "LvModule::GetInt32"
在可能找到缺少的库的任何目录中运行该命令

这将搜索当前目录中库中的所有导出函数,并找到对LvModule::GetInt32的任何引用

你必须从那里继续你的研究,以找出它是否正是你所需要的缺失功能,但这是一个很好的起点

TL;DR:dumpbin很适合在图书馆中查找

为什么我要为你写剧本? 你甚至会编程吗

程序:SearchFor.bat%1

以以下方式运行此操作:

C:\>SearchFor LvModule::GetInt32
嗯,我的建议是RTFM

更严重的是,MSDN文档总是提供API函数所在的头和库,所有合适的库也是如此

我可以在发布的错误LvModule和CCamera引用中看到。我假设他们来自图书馆,你知道他们来自哪个图书馆。然后,您应该确定这些引用属于什么产品,并查看它在您的机器上的安装位置和安装方式,以及如何记录这些功能


当然,您也可以搜索磁盘上的每个lib和dll文件,并使用dumpbin识别它们声明的符号,但我个人更喜欢第一种方式。

前端解析器可能知道声明的位置。转到使用链接器的站点链接器错误会告诉您,选择它,然后按F12。当然,您无法找到定义,因为它不存在。这不是头文件中的函数声明问题。这是一个连接问题。你忘了把Libraries和你的项目联系起来吗?这是Leutron Vision的Simplon产品吗?尽快停止使用它,他们三年前就停业了。我已经链接了我所知道的库,它可以找到大多数方法。当然,还有更多的库需要链接,但我不知道是哪一个……所以,我想知道,有没有什么方法可以让我知道需要指定的缺少的库。@HansPassant:没有,它来自网络摄像机制造商。我尝试在VS 2015的开发者命令提示符和VS 2015的MSBuild Comand提示符中使用您的命令。第一个没有给出任何消息,第二个说“dumpbin不被识别为内部或外部命令、可操作程序或批处理文件”,您是否在存储库文件的目录中运行了它?你明白*.lib的意思吗?它只引用当前目录?如果我知道库的目录,我就已经指定了它到VS2015的路径。但问题是,,我不知道我需要进一步包括哪个库,这就是为什么我需要搜索包含缺少的方法的库。这就是为什么它被称为搜索。你必须在许多地方寻找最终找到正确的方法。难道不可能在完整的系统中搜索它吗?我已经包括了库到他的路径就我所知,我不应该得到这个链接器错误。我发现这个错误意味着仍然缺少一些库。我不知道哪一个图书馆丢失了,它在哪里,因此,我想知道一些技术,通过这些技术我可以找到它。
C:\>SearchFor LvModule::GetInt32