Prepare your computer for OPENGL/GLAD programming (C++)

This is a tutorial based on the technologies required for the related courses of graphics.di.uoa.gr (x64, windows setup):

  • CMAKE
  • OPENGL 3.3
  • GLFW
  • GLAD
  • ASSIMP
  • SOIL
  • freetype
  • irrKlang
  • VS Studio community (latest version)

Summary of what you are going to install:

  • CMAKE
  • VS 2019 (or the most recent)
  • learnopengl GIT repository

Step 1 – Prerequisites:

Check you have the latest drivers for your graphics card installed and that you can run OPENGL applications.

Step 2 – Install CMAKE

Download and install 64-bit cmake installer (windows/x64/msi) from the official site

The .msi file is an installer so you don’t have to do anything complicated.

Step 3 – Install VS C++ 2019 community

Download and install VS 2019 community for C++ from the official site

Step 4 – Clone the learnopengl.com repository (link)

Clone or download the learnopengl.com repository from github. Extract the files to any directory you want. For the current example to:

E:/_desktop/graphics/LearnOpenGL-master

Step 5 – Build the examples with CMAKE

From a terminal (or from windows run dialog – winkey+R), execute the command:

cmake-gui

The cmake form will appear. You should fill the fields so that the source directory is the one where you extracted the repository on the previous step and the binaries directory to be the subdirectory dist or build within that directory. For example:

Then press the button generate and wait until compilation finishes.

Step 6 – Create an C++ project

Create an empty C++ project with VS and select the project and the solution to be in the same directory.

Then create a main.cpp and test that you can compile C++ programs.

Step 7 – Copy the headers and the lib files

copy the following directories from the repository to your project:

  • includes
  • lib

Then copy the following files from the repository src subdirectory to your project:

  • glad.c

Step 8 – Configure the project

At this point you have to configure for the project:

  • additional include directories (directory: includes)
  • additional library directories (directory: lib)
  • additional dependencies (opengl32.lib; glfw3.lib;assimp.lib)

Right click on the project. Select properties. Then make sure you have selected: all configurations // all platforms:

Screenshots are given below:

For the dependencies you can add to specifically x64 platform. You can ignore the x86 configuration completely.

You should add the following prefix (add the others as needed):

opengl32.lib;glfw3.lib;assimp.lib

Step 9 – Configure preprocessor directives

Add the following directives:

STB_IMAGE_IMPLEMENTATION;_CRT_SECURE_NO_WARNINGS;

Step 10 – Add the source files and libraries

Add the following files to the project (from the context menu):

  • glad.c

Step 11 – Test the environment

Replace the contents of your main.cpp with the contents of the hello_triangle.cpp (example 2.1) from the repository.

Compile and run the project. The program should report runtime DLL error.

Step 12 – Add the DLLS

Copy the DDLS found in the directory dll of the repository to the directory that was created during the compilation from VS. For example copy:

  • assimp-vc140-mt.dll
  • ikpMP3.dll
  • irrKlang.dll

to:

<project directory>/x64/Debug/

Step 13 – Run the project

At this point the project should be ready.

Troubleshooting

“TextureFromFile” cannot be found

Add the preprocessor flag: STB_IMAGE_IMPLEMENTATION to project properties:

STB_IMAGE_IMPLEMENTATION
“TextureFromFile” already defined

Open learnopengl/model.h and mark the function: TextureFromFile as inline

Make sure only one file includes : <learnopengl/model.h>

CANNOT OPEN “root_directory.h”

Delete the line that cases the error and replace logl_root with “.” (at FileSystem class)

‘getenv’: This function or variable is unsafe

Add the preprocessor flag: _CRT_SECURE_NO_WARNINGS to project properties:

_CRT_SECURE_NO_WARNINGS
Unresolved external symbol _gladLoadGLLoader

Your should use the x64 configuration. Not the x86:

Unresolved external symbol gladloadglloader

Add glad.c to the project source files.

ASSIMP-vc-140mt.ddl not found

Copy the dll files from the repository to the directory where the executable was generated.

Leave a Reply