LNK2001 无法解析的外部符号 __imp__CameraCreateSettingPage@24

用VS2017,Release X86进行编译时显示如下错误:

1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraGetImageBuffer@16
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraImageProcess@16
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraImageOverlay@12
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraDisplayRGB24@12
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraReleaseImageBuffer@8
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 _GT_GetSts@16
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 _GT_Stop@8
1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 _GT_GetPrfPos@16

......

翻译为英文为:error LNK2001: unresolved external symbol __imp__CameraGetImageBuffer@16(方便google

最近在看《调试九法:软硬件错误的排查之道》,决定按照里面学到的知识来解决上述问题。

1)理解系统。这两部分错误分别与相机和电机有关。除了代码本身,就是库文件,找到这两个对应的库文件。了解一下dll和lib文件的一些特性。

根据 lib和dll的区别、生成以及使用详解   中调用动态库和静态库的方法,把相机和电机的动态库和静态库添加到对应的位置。

之后,关于“error LNK2001: 无法解析的外部符号 _GT_XXX”的错误就消失了,还剩下相机的错误,发现Libray文件夹下有MVCAMSDK_X64.lib,在头文件中添加如下语句:

#ifdef _WIN64
#pragma comment(lib,".\Library\MVCAMSDK_X64.lib")
#else
#pragma comment(lib,".\Library\MVCAMSDK.lib")
#endif // _WIN64X

用Debug  X64 编译通过。问题解决。

 

原文地址:https://www.cnblogs.com/algs/p/11077737.html