我在VS 2012上编译基本的openGL程序时遇到问题。编译时出现构建错误:
1>LINK : fatal error LNK1104: cannot open file 'glew32.lib'
我按照GLEW的文档给我的指示。
在您的OpenGL项目中打开Project - >属性 - >配置属性 - >链接器 - >输入 - >附加依赖性 - >添加glew32.lib。
此外,您必须在您的来源中加入#include;为此添加glew文件夹的路径:Project - >属性 - >配置功能 - >一般 - > VC ++目录 - >包括目录和图书馆目录;
C / C ++标签 - >一般 - >其他包含目录 - 在那里添加lib文件夹
我还将glew32.dll与可执行文件一起添加到项目文件夹中的Debug文件夹中。到目前为止,我一直收到这个错误。
如果您需要进一步澄清我所采取的步骤,请随时提出
答案 0 :(得分:15)
老实说,使用DLL版本的glew并没有什么好处(可缩小的可执行文件大小,但这在现代Windows PC上并不重要)。
您可以简单地将新版本的DLL放入应用程序并使用以前从未使用过的扩展名。同样,对于基本上只解析扩展规范的库,错误修复是如此罕见/不必要。使用DLL作为修复随附软件中的扩展加载错误的方法的文件也是不实际的。从长远来看,静态链接到glew(这意味着glew32s.lib
)更有意义。
静态链接库在Windows上也更易于移植,它可以与MSVC和MinGW一起使用(而DLL库只能与MSVC一起使用)。链接glew32s
并将其放在您决定用于其他库依赖项的任何目录中。
platform/<Subsystem>
下。因此,我在 ./ Epsilon / platform / OpenGL / glew {32 | 64} s.lib 中有glew32s.lib
(32位)和glew64s.lib
(64位)
答案 1 :(得分:2)
在这种情况下发生了我,我清理解决方案并再次构建它,然后发生许多错误,如LNK1104。
尝试重新启动IIS后,我成功构建了解决方案,没有出现LNK1104错误。我不知道为什么,但重启IIS需要比平常更多的时间,所以我猜其他IIS工作进程使用了一些东西。
只是试一下,看看你是否会发生这种魔法。
答案 2 :(得分:2)
使用类的步骤形成另一个项目(添加标题和解算器链接器错误)
为了能够从其他项目添加标题,首先转到&#34;属性&gt; c ++&gt;一般&gt;其他包含目录&#34; 并添加包含标题的目录。现在,您将能够从其他项目添加该类的标题,但运行该项目仍将导致链接器错误。
在您用于其他项目的课程之前添加 __ declspec(dllexport)。这可以添加到该类的头文件中。这应该在函数或变量或类名之前添加。现在您将获得一个lib文件。 (如果放在错误的地方,您可以收到此警告:https://msdn.microsoft.com/en-us/library/eehkcz60.aspx)
&#34;属性&gt;链接器&gt;其他图书馆目录&#34; 。指定生成的lib文件的位置。
&#34;属性&gt;链接器&gt;输入&gt;附加依赖项“:添加lib文件的名称。
答案 3 :(得分:1)
这听起来像已将库指定为依赖项,但链接器/其他搜索路径尚未设置为包含库所在的目录。
答案 4 :(得分:1)
这个问题已经陈旧并且已经解决了,但我遇到了类似的问题症状,并且解决方案完全不同。所以万一其他人在这里偶然发现:
看起来因为我在一个解决方案(一个dll和一个exe)下有两个项目,所以构建顺序是混合的(从输出窗口):
1> Rebuilding project1..
2> Rebuilding project1..
1> file1.cpp
2> file1.cpp
等等。通过您复制的消息,您似乎在一个解决方案下也有多个项目。一个项目正在寻找另一个版本尚未创建的* .lib文件
解决方案:
右键单击“主”项目 - &gt;构建依赖关系 - &gt;项目依赖性... - &gt;标记主要项目取决于哪个项目。