c++ - 在 Visual Studio 2010 中链接库

标签 c++

当我无聊的时候,我在一边做一些研究,我发现这个 glut32.dll、glut32.h 和 glut32.lib 文件应该包含几个不同的函数定义(如果我没记错的话)此源代码使用的功能。

我使用的是 Visual Studio 2010,所以我必须使用项目的属性手动添加 .lib 文件。所以……

  • 我转到项目/属性/配置。 Properties/VC++ Directories 并将我的头文件和 .lib/.dll 文件所在的位置添加到 Include、Reference、Source 和 Library 属性。

  • 然后我在 Config 中进入 C/C++。 Prop. 菜单,进入常规选项卡,并将我的 .h/.lib/.dll 文件的位置添加到附加包含目录。

  • 返回到 C/C++ 目录,找到 Advanced 选项卡并告诉代码编译为 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 ==========

我可以确认问题出在我链接库的方式上,我肯定做错了什么,因为当我尝试将其他库链接到其他项目时,结果是一样的。我在网上查看并尝试了几个教程,但都无济于事 - 有人可以告诉我我做错了什么吗?

最佳答案

所有链接错误都不是针对 GLUT 函数的。看起来您没有链接到 ARToolkit 库。那将是一个不同的库,也需要包含在您的输入行中。

关于c++ - 在 Visual Studio 2010 中链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487056/

相关文章:

c++ - 寻找元组替换算法

c++ - 使用 std::inner_product 时内积为零

c++ - 奇怪的 C++ Arduino 串行行为

c++ - 尝试通过 CGAL_CXX_FLAGS 设置 --std=c++0x 或 -std=gnu++0x 忽略值

c++ - 为什么内联函数需要传递参数?

c++ - OpenGL,围绕一个点的旋转仍然围绕原点不起作用

c++ - 如何将十六进制字符串拆分为 std::vector?

c++ - makefile自动src文件检测和依赖生成

c++ - 基类构造函数错误

c++ - 为什么结构体的 sizeof 不等于每个成员的 sizeof 之和?