2011-03-30 152 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")