Can someone help me get GLFW working in Visual Studio 2012? I can't get past initial compilation. I keep getting unresolved externals for the GLFW functions. The problem is, I don't know what I'm doing wrong. I could be:
- Improperly making the source files with CMake.
- Improperly building the library.
- Improperly linking to the GLFW library.
I'm not sure which of these it is, so I'll just list what I did:
1. Downloaded glfw-3.1.1 from glfw.org.
2. Used CMake GUI to make the source files.
a. Set source code to C:/GLFW/glfw-3.1.1
b. Set "Where to build the binaries" to C:/GLFW/glfw-3.1.1/GLFW_Built (I created that directory)
c. Clicked "Configure"
d. Selected "Visual Studio 11 2012" as the generator (I also tried "Visual Studio 11 2012 Win64," but it gave me the same results. The ARM one wouldn't build at all)
e. Left "Use default native compilers" selected.
f. Clicked "Finish."
g. Set "BUILD_SHARED_LIBS" to true (checked).
h. Clicked "Generate."
3. Built the library.
a. Went to C:\GLFW\glfw-3.1.1\GLFW_Built and opened GLFW.sln in Visual Studio 2012.
b. Clicked BUILD->Build ALL_BUILD (worked fine, no errors)
4. Created a new blank project in Visual Studio 2012.
5. Went into the properties pages and set:
a. Configuration Properties/VC++ Directories/Include Directories: added "C:\GLFW\glfw-3.1.1\include"
b. Configuration Properties/VC++ Directories/Library Directories: added "C:\GLFW\glfw-3.1.1\GLFW_Built\CMakeFiles\Export\lib" (it was the only lib folder I saw) and "C:\GLFW\glfw-3.1.1\GLFW_Built\src\Debug" (contains glfw3.dll and glfw3dll.lib)
c. Configuration Properties/C/C++/Additional Include Directories: added "C:\GLFW\glfw-3.1.1\include"
d. Configuration Properties/Linker/General: added "C:\GLFW\glfw-3.1.1\GLFW_Built\src\Debug
e. Configuration Properties/Linker/Input: added "glfw3dll.lib" and "opengl32.lib"
For my code, I just have a very simple test program in main.cpp:
#include <GLFW/glfw3.h>
#include <thread>
int main()
{
glfwInit();
std::this_thread::sleep_for(std::chrono::seconds(1));
glfwTerminate();
}
But I always get this in the output:
1>main.obj : error LNK2019: unresolved external symbol _glfwInit referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _glfwTerminate referenced in function _main
1>C:\Users\Adam\Desktop\Revenant\Revenant\Debug\Revenant.exe : fatal error LNK1120: 2 unresolved externals