我无法在visual studio 2013 c ++项目中链接静态库。
设置包含目录的路径 (项目属性> C / C ++“附加包含目录”)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common
添加lib文件的路径 (项目属性>链接器>一般“附加库目录”)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common\Libs
添加库名称 (项目属性>链接器>输入“附加依赖项”)
glew32.lib
glfw3.lib
定义预处理器GLEW_STATIC(当我删除它时它是可见的)
(project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
当我构建项目后发生错误:
Error 1 error LNK2001: unresolved external symbol _glewExperimental C:\Users\User\documents\visual studio 2013\Projects\OpenGL\OpenGL\Source.obj OpenGL
Error 2 error LNK1120: 1 unresolved externals C:\Users\User\documents\visual studio 2013\Projects\OpenGL\Debug\OpenGL.exe OpenGL
当我想补充这个
时#include<Windows.h>
#include<GL\glew.h>
#include<GLFW\glfw3.h>
#include<iostream>
GLFWwindow * window;
using namespace std;
int main()
{
glewExperimental = TRUE;
GLenum error = glewInit();
if (error != GLEW_OK)
{
cout << "Error!" << endl;
}
system("pause");
return 0;
}
虚拟机(VirtualBox)和Mirosoft Visual Studio 2013上的Windows 8.1
我做错了什么?在此论坛的其他主题中,此解决方案正常运行。
当我从目录中删除这两个libs时,我得到了同样的错误,所以Visual可能看不到这两个库。但路径设置正确。包含路径有效,所有头文件都可以通过intelsense查看。
答案 0 :(得分:2)
@bogdan是正确的:GLEW的静态库版本是 glew32s.lib 。
BTW,sourceforge.net上的GLEW installation page表示如果你想要静态链接,你必须在你的项目中加入包含glew.h和glew.c。&#34;虽然这听起来很容易,但对于每个openGL项目来说,这似乎都是不必要的粗糙。相反,请执行以下操作:为我工作。
如果您不了解这一点,可以添加新的资产表,例如 openglPropertySheet32Static ,位于 Property Manager (查看菜单 - 其他Windows - Property Manager )。添加您的openGL特定属性。不要忘记明确保存表单 - 我不确定它是否随项目自动保存。然后,您需要为将来的openGL项目做的就是添加现有属性表, openglPropertySheet32Static ,在物业管理器中(你还记得保存它的地方吗?)。 / p>