flycaputer2链接错误

时间:2010-09-18 21:41:29

标签: c++ visual-studio-2008 linker

我使用Point Grey的FlyCapture库有一些简单的代码:

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

using namespace std;

int main(){
    cout << "Hello World!";
    FlyCapture2::BusManager m;
    return 0;
}

上面的代码在编译时给出了这些链接错误:

1>------ Build started: Project: CJMVideo, Configuration: Release Win32 ------
1>Compiling...
1>CJMVideo.cpp
1>Linking...
1>CJMVideo.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall FlyCapture2::BusManager::~BusManager(void)" (__imp_??1BusManager@FlyCapture2@@UAE@XZ)
1>CJMVideo.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall FlyCapture2::BusManager::BusManager(void)" (__imp_??0BusManager@FlyCapture2@@QAE@XZ)
1>C:\Users\Akihiro\Documents\Visual Studio 2008\Projects\CJMVideo\Release\CJMVideo.exe : fatal error LNK1120: 2 unresolved externals
1>Build log was saved at "file://c:\Users\Akihiro\Documents\Visual Studio 2008\Projects\CJMVideo\CJMVideo\Release\BuildLog.htm"
1>CJMVideo - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我已将FlyCapture的目录添加为VS2008选项中的库目录,并且我已将这些库添加为项目设置下的附加依赖项。

我的下一步调试是什么?我很茫然。

谢谢,

2 个答案:

答案 0 :(得分:0)

@Surgio:

我解决了我的问题,所以我想我会给你一个更新。我的问题原来是我的Visual Studio使用32位编译器但是尝试从64位库编译。

您可能已经这样做了,但只是大小写,请确保您(1)在VS中添加了库位置,并且(2)确保在项目设置下将库添加为其他依赖项。

答案 1 :(得分:0)

在Visual Studio属性中,确保编译器知道其他库目录所在的位置,否则可能会出现您所描述的链接器错误。

具体来说,您可以通过设置项目属性 - &gt;来完成此操作。链接器 - &gt;一般 - &gt;其他图书馆目录。您需要告诉它库目录所在的位置。例如,对于FlyCapture SDK v2.2安装,通常在:

C:\ Program Files \ Point Grey Research \ FlyCapture2 \ lib

另一件事,即使您在64位平台上工作,例如,如果您选择将WinCapture应用程序作为Win32控制台运行,您可能仍需要下载并使用32位版本的任何东西您正在使用的FlyCapture SDK,而不是64位版本。只是一个想法。

有关开始使用FlyCapture设置的更详细说明,请参阅此blog posting,这些设置当时是在Windows XP 32位环境中的VS2008中完成的,但是应用它不应该太难在更新版本的Visual Studio上为64位。任何反馈都非常赞赏。