您好我正试图通过usb在c ++中测试一个佳能相机(最终我想在labview上使用它)。我在使用任何其他功能之前尝试初始化相机,首先我有canon SDK提供的lib和dll文件,但我认为我没有正确包含它们,因为我得到了一个未解决的外部错误
1>EDSDK.obj : error LNK2019: unresolved external symbol __imp__EdsInitializeSDK@0 referenced in function _main
我对c ++很陌生,所以我不知道自己在做什么,有人会对如何让这个初始化工作有任何建议吗?还有关于如何正确包含lib和dll文件?以下是我写的代码。
#include "EDSDK.h"
#include "EDSDKErrors.h"
#include "EDSDKTypes.h"
#include <stdio.h>
void main(int argc, char **argv)
{
EdsError err = EDS_ERR_OK;
EdsCameraRef camera = NULL;
EdsCameraListRef cameraList = NULL;
EdsUInt32 count = 0;
bool isSDKLoaded = false;
// Initialize SDK
err = EdsInitializeSDK(); // If camera is initialised, err = EDS_ERR_OK
if(err == EDS_ERR_OK)
{
isSDKLoaded = true; // isSDKLoaded is true if initialised
printf("SDK initialised");
}
printf("SDK not-initialised\n");
}
答案 0 :(得分:0)
您必须告诉链接器将您的程序与库链接。如何告诉链接器取决于工具链。你应该参考文档。
答案 1 :(得分:0)
我还有很长时间才弄明白,以下步骤对我有用:
在VB中,您必须链接到包含头文件的文件夹和包含lib文件的文件夹。为此:
在属性页面中,在C / C ++下 - &gt;常规,在“其他包含的目录”中添加包含标题的文件夹的路径(在下拉列表中选择“编辑”)。 在链接器下 - &gt;输入,在“附加依赖项”中添加库文件夹的路径(在下拉列表中选择“编辑”)。
将dll文件放在C:/ Windows文件夹中。
应将dll文件放在与可执行文件相同的文件中(通常为“Debug”文件夹)。
另请参阅:How do I link a DLL to my project? error LNK2019: unresolved external symbol