My system reports that im using OpenGL 4.2: https://pastebin.com/uXu3BLxX But when i try to use that OpenGL vesion to write a program with it, it fails, the maximum version i can use for that is OpenGL 2.1, why does that happen?

    • e0qdk@kbin.social
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago
      • GLFW is intended to be built with cmake.
      • After unzipping the source, make a build directory, and configure glfw3
      • ^^ I like using ccmake to do this interactively, but you can also just pass flags to cmake if you know what they are
      • You should build with GLFW_USE_WAYLAND and GLFW_USE_OSMESA turned off to get it to try to build against X11.
      • You will probably also want to turn off GLFW_BUILD_DOCS, GLFW_BUILD_EXAMPLES, GLFW_BUILD_TESTS
      • You can adjust CMAKE_INSTALL_PREFIX if you don’t want to use the /usr/local default install path.
      • After generating a Makefile, run make and make install
      • glfw3 generates a pkg-config compatible .pc file as part of its build process that lists flags needed for compilation and linking against the library. Normally, you’d just call pkg-config --cflags --libs --static glfw3 to get this info as part of your own build process (in a Makefile, for example) or else require glfw3 as part of a cmake-based build, but you can read what’s generated in there if that program is not available to you for some reason. In case it’s helpful for comparison, what I get with a custom build of the static library version of glfw3 installed into /usr/local on a slightly old version of Ubuntu is output like -I/usr/local/include -L/usr/local/lib -lglfw -lrt -lm -ldl -lX11 -lpthread -lxcb -lXau -lXdmcp but you may need something different for your particular configuration.

      Basically, something like this, probably, to do the compilation and get the flags to pass to g++:

      wget 'https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.zip'
      unzip glfw-3.3.8.zip
      mkdir build
      cd build
      cmake -D GLFW_BUILD_DOCS=OFF -D GLFW_BUILD_EXAMPLES=OFF -D GLFW_BUILD_TESTS=OFF -D GLFW_USE_OSMESA=OFF -D GLFW_USE_WAYLAND=OFF -D GLFW_VULKAN_STATIC=OFF ../glfw-3.3.8
      make
      make install
      
      pkg-config --cflags --libs --static glfw3
      
      

      If you want to just compile a single cpp file after building and install, you can do something like

      g++ main.cpp `pkg-config --cflags --libs --static glfw3` -lGL