I can't link static libraries in my visual studio 2013 c++ project.
- I downloaded latest glew-1.11.0-win32 and glfw-3.1.1.bin.WIN32
Set path to include directory (project Properties > C/C++ "Additional Include Directories")
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common
Add path to lib files (project Properties > Linker > General "Additional Library Directories")
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common\Libs
Add library names (project Properties > Linker > Input "Additional Dependencies")
glew32.lib glfw3.lib
Define preprocesor GLEW_STATIC (it's visible when I remove this)
(project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
When I build my project following error occur:
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
When I want to comple this
#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;
}
Windows 8.1 on virutal machine(VirtualBox) and Mirosoft Visual Studio 2013
What I am doing wrong? In other topics on this forum this solution works properly.
When I remove this two libs from directories I got same error, so probably Visual don't see these two libs. But path is set properly. Include path works, all header files are visible by intelsense.
@bogdan is correct: the static library version of GLEW is glew32s.lib.
BTW, the GLEW installation page on sourceforge.net says you have to "include include glew.h and glew.c into your project if you want static linking." While that sounds easy enough, it seemed like unnecessary roughness to do it for every openGL project. Instead, do the following:
Worked for me.
In case you aren't aware of this, you can Add New Property Sheet, e.g. openglPropertySheet32Static, in the Property Manager (View menu - Other Windows - Property Manager). Add your openGL specific properties to it. Don't forget to explicitly save the sheet--I'm not sure it is saved automatically with the project. Then, all you have to do for future openGL projects is Add Existing Property Sheet, openglPropertySheet32Static, in the Property manager (you remember where you saved it, right?).