轻松自如地学习OpenGL但有一个问题
Learning OpenGL with glew and freeglut; but there is an issue
我使用的是Visual Studio 2013,并使用nuget安装了" glow "answers"freeglut"。我正在遵循一个课程,以及这些安装说明:
http://in2gpu.com/2014/10/15/setting-up-opengl-with-visual-studio/我确实弄糊涂了,但我仔细阅读了说明书。在构建我的简单项目的最后,我得到了一个错误:1>链接:致命错误LNK1104:无法打开文件'Dependenciesfreeglut.obj'
#include <iostream>
#include "Dependenciesglewglew.h"
#include "Dependenciesfreeglutfreeglut.h"
int main(int argc, char **argv)
{
return 0;
}
我读过其他网站关于安装库,但我只是感到困惑。任何帮助和深入讨论将非常有帮助。谢谢。
链接:致命错误LNK1104:无法打开文件'Dependenciesfreeglut。
obj
'
不应该是freeglut.obj
,而应该是 freeglut.lib
另外,请确保,您正确地遵循了Now let’s prepare FreeGLUT
部分教程中的所有步骤:他们非常清楚地解释了如何添加搜索库目录和链接器输入,但是Visual Studio报告缺少Dependenciesfreeglut.obj
-仔细检查,您在项目属性-> Linker
-> Input
-> Additional Dependencies
中有什么
不幸的是,我将不得不问一个明显的问题:是免费的。Lib位于它应该在哪里,你是否指向正确的目录?
你的错误显示Dependenciesfreeglut。但是如果您遵循教程,freeglut应该在Dependenciesfreeglut中。Windows上的另一个常见错误是使用包含空格的完整文件路径(C:....)我的文档…),但不把整个文件路径加引号。链接器会因此出错
编辑:我猜我被否决了,因为我没有注意到更明显的问题,你的链接器正在寻找一个免费的。不,你没有。确保将其命名为freeg鲁特.lib。
从概念上讲,这是发生的事情,这可能有助于您解决问题:当您编写cpp文件并对其进行编译时,它被转换为obj文件。编译器不需要知道所有的事情。你可以声明一个函数,它返回一个int,并接受一个bool作为参数,然后在你的代码中使用它,编译器会说:"好,如果你这么说的话。"您的程序可能有几个cpp文件,因此也有几个obj文件。编译后,这些obj文件被链接在一起,形成可执行文件。如果这里出了什么问题(确实有!),那就是链接器错误。链接器说"好吧,你说你在使用这个函数。它在哪里?"
您已经获得了lib文件。在这种情况下,它们是静态库,本质上是一组obj文件的容器,这与您自己编写并编译所有的freeglut函数和类并没有什么不同。链接器想要链接它们。对于您编写和编译的代码,Visual Studio确保所有内容最终都在正确的文件夹中,并且看起来在正确的位置。编译的目标文件来自其他地方?它没有办法知道,所以你必须告诉VS两件事:库在哪个文件夹,库文件的名字是什么。然后链接器就知道该去哪里查找,以及它要查找的内容。
在某个地方,你把文件放在了错误的位置,或者告诉了VS错误的位置,或者错误的文件,或者一些组合。或者你已经做了一些事情,比如在文件路径中有空格而没有引号。另一个常见错误是混合使用不同的平台。X86(即32位)和x64目标文件是不同的,如果您的链接器正在寻找一种类型,它将无法理解另一种类型。你的下载提供了不同平台的库,VS让你选择一个目标平台。
- 有一个打印语句的函数是一种糟糕的编程实践吗
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 有没有可能有一个只有ADL才能找到的非好友功能
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在学习数据结构之前对STL有一个了解是好的吗?
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 是否可以在C++中有一个"generic"模板参数,该参数可以是非类型模板参数或类型?
- 我的输出中有一个额外的 0,为什么会这样
- 节点是否为空,即使它有一个值?
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- 在 Stream C++ 文本之前有一个额外的换行符
- OpenGL在一个窗口中有多个渲染上下文
- OpenGL:一次只能有一个FBO工作
- 有没有人有一个OpenGL ES 2.0 Qt 5示例在iOS下工作
- OpenGL有两个循环,一个循环不起作用
- 轻松自如地学习OpenGL但有一个问题
- 是否有一个方便的字体库为OpenGL-ES 2像glFont