2010-09-18 141 views
0

我使用灰點的FlyCapture庫一些簡單的代碼:flycaputer2鏈接錯誤

#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)" ([email protected]@@[email protected]) 
1>CJMVideo.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall FlyCapture2::BusManager::BusManager(void)" ([email protected]@@[email protected]) 
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的選項中,並且我在項目設置下添加了這些庫作爲附加依賴項。

我的下一步調試是什麼?我很茫然。

感謝,

回答

0

@Surgio:

我解決我的問題,所以我想我給你的更新。我的問題原來是我的Visual Studio使用32位編譯器,但試圖從64位庫進行編譯。

你可能是這樣做的,但只是例外,請確保你(1)在VS中添加了庫位置,並且(2)確保在項目設置下添加了庫作爲附加依賴項。

+0

嗨,你可以請擴大一點 - 什麼庫需要特別添加?我有這個問題,一直無法克服它。 – AndyUK 2012-06-09 10:49:31

0

在您的Visual Studio屬性中,確保編譯器知道附加庫目錄的存在位置,否則可能會導致您所描述的鏈接器錯誤。

具體而言,您可以通過設置項目屬性 - >鏈接器 - >常規 - >其他庫目錄來執行此操作。你需要告訴它圖書館目錄的位置。對於FlyCapture SDK V2.2安裝爲例,這是常用的:

C:\ Program Files文件\灰點研究\ FlyCapture2 \ lib中其他

一兩件事,即使你是在64工作如果您選擇將FlyCapture應用程序作爲Win32控制檯運行,您可能仍然需要下載並使用您正在使用的任何FlyCapture SDK的32位版本,而不是64位版本。只是一個想法。

查看此blog posting以獲取有關FlyCapture設置入門的更詳細說明,該設置當時是在Windows XP 32位環境中的VS2008中完成的,但將其應用於64位應用程序應該不會太困難,位於更新版本的Visual Studio上。任何反饋非常讚賞。