2011-03-30 102 views
3

我正在做一些研究,當我無聊時,我發現這個glut32.dll,glut32.h和glut32.lib文件應該包含函數定義(如果我是沒有錯誤)這個源代碼使用的幾個不同的功能。在Visual Studio 2010中鏈接庫

我正在使用Visual Studio 2010,因此我必須使用項目的屬性手動添加.lib文件。所以...

  • 我轉到Project/Properties/Config。屬性/ VC++目錄,並將我的頭文件和.lib/.dll文件添加到Include,Reference,Source和Library屬性中。

  • 然後我進入配置中的C/C++。支持菜單,進入「常規」選項卡,並將.h/.lib/.dll文件的位置添加到「添加包含目錄」。返回到C/C++目錄,高級選項卡,並告訴代碼編譯爲C代碼(在C和C++代碼之間進行更改最終不會做任何事情)。

  • 然後,出C/C++選項卡,進入配置。 Prop.s選項卡,我進入鏈接器選項卡。在這裏,我轉到「其他庫目錄」並添加我的.lib和.dll文件所在的位置。

  • 然後進入輸入選項卡,我在其中添加依賴項選項卡中的.lib文件的名稱中寫入。每次更改後我都會點擊應用,然後點擊此處應用/確定。

我去通過代碼來構建和得到這個錯誤:

1>------ Build started: Project: simplVRML, Configuration: Debug Win32 ------ 
1>Build started 3/30/2011 7:46:45 AM. 
1>InitializeBuildStatus: 
1> Touching "Debug\simplVRML.unsuccessfulbuild". 
1>ClCompile: 
1> All outputs are up-to-date. 
1>ManifestResourceCompile: 
1> All outputs are up-to-date. 
1>object.obj : error LNK2019: unresolved external symbol _arLoadPatt referenced in function _read_VRMLdata 
1>object.obj : error LNK2019: unresolved external symbol _arVrmlLoadFile referenced in function _read_VRMLdata 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arVrmlDraw referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arUtilTimerReset referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglSetupForCurrentContext referenced in function _main 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapStart referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arInitCparam referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamDisp referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamChangeSize referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arParamLoad referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoInqSize referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoOpen referenced in function _setupCamera 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arMatchingPCAMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arTemplateMatchingMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglTexmapModeGet referenced in function _debugReportMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDrawModeGet referenced in function _debugReportMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arImageProcMode 
1>simpleVRML.obj : error LNK2001: unresolved external symbol _arFittingMode 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoClose referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapStop referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCleanup referenced in function _Quit 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoDispOption referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arUtilTimer referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglTexmapModeSet referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDrawModeSet referenced in function _Keyboard 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arGetTransMatCont referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arGetTransMat referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arDetectMarker referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoGetImage referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arVrmlTimerUpdate referenced in function _Idle 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCameraViewRH referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglCameraFrustumRH referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol __imp__arVideoCapNext referenced in function _Display 
1>simpleVRML.obj : error LNK2019: unresolved external symbol _arglDispImage referenced in function _Display 
1>C:\Users\*\Desktop\AltReality\Pwork\simplVRML\Debug\simplVRML.exe : fatal error LNK1120: 34 unresolved externals 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:00.81 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

我可以確認問題是我如何鏈接庫,我肯定做錯了什麼,因爲當我嘗試將其他庫鏈接到其他項目的結果是相同的。我在網上看過,我已經嘗試了幾個教程,但無濟於事 - 有人可以告訴我我做錯了什麼嗎?

回答

0

有幾件事情,您可以嘗試:

  1. 你有這個DLL在同一目錄下的EXE?
  2. 您的.h文件是否添加到您的解決方案中?
  3. 您是否添加了行#include「glut32.h」?
  4. 嘗試添加lib添加到您的解決方案,而不是項目屬性。(不理想,但它應該得到它來編譯現在)

希望這有助於 埃蒙·

+1

2和3會導致編譯器錯誤,不鏈接程序的。 – 2011-03-30 14:29:53

+0

嘿Eamonn :) 1-是的它是 2- Yep 3-是的 4-你是什麼意思? – Saint 2011-03-30 14:37:21

+0

@Saint雖然您已經設置了包含在項目屬性中的lib文件,但您可能忘記將'.lib'文件放入您的項目目錄中。 – Jason 2011-03-30 15:05:23

1

試圖把.dll.lib文件需要到您的項目目錄中。

6

GLUT函數沒有任何鏈接錯誤。看起來你沒有鏈接到ARToolkit庫。這將是一個不同的庫,也需要包含在您的輸入行中。

6

正如前面帖子裏說,請確保您的.dll /的.lib文件(S)是在同一目錄中的.exe/.dll你正在構建,然後去到項目的「解決方案資源管理器」,右鍵點擊項目名稱,選擇「Add」 - >「Existing Item ...」,然後選擇要包含的.dll/.lib文件。

您現在應該看到「解決方案資源管理器」中「源文件」部分下方列出的.dll/.lib文件。直到我執行剛描述的步驟時,我纔看到相同的錯誤。

此外,請確保您的頭文件包含在項目中,並在源文件中適當引用。

+0

life save ...保存我的整個一天我想給這個回覆5票! – SimonFisher 2014-03-01 04:03:46

1

我在構建32位應用程序並嘗試鏈接到64位庫時遇到此問題。也許你的確有相同的問題,或者相反。也許你正嘗試從64位可執行文件鏈接到32位庫。

要在Visual Studio中修復此問題,請轉至配置管理器。選擇正確的平臺或根據需要創建新的平臺。

-1

試試這個

#pragma comment(lib, "dev\\lib\\avformat.lib")