Unsolved Qt GLFW and GLEW setup
-
@bence said in Qt GLFW and GLEW setup:
LIBS += -L"C:\glfw\lib-vc2019" -glfw3
error: unrecognized debug output level 'lfw3'
Where do yo u get the
-glfw3
from? Forgcc
, for example, the-g
is a compiler debugging flag, which would give your error. -
@JonB now I know that waht was the problem I have to use
LIBS += -L"C:\glfw\lib-vc2019" -lglfw3
But this time I get 120 issues
I assume that I cannot use GLFW Visual Studio precompile libary. But I cannot know what should I do.
-
@bence
If you only have libraries for VS/MSVC I believe you have to use that tool chain. -
I do not install VS to my PC.
I am sure that there is other way to do that.
I believe Qt is a excellent platform so there have to be a way to use original OpenGL
If you have any idea who could I use the original OpenGL in Qt I would really appriciate it.
-
Your issue is not related to Qt. You are trying to mix and match C++ libraries built with two different compilers. You can't use C++ libraries built with Visual Studio when using MinGW and it's the same the other way around.
As I already explained Qt does not implement a custom version of OpenGL. You already have access the functions. You are currently making your life more complicated than need be.
-
-
The page you linked provides libraries for a lot of compilers including MinGW 32 and 64 bit.
If you can't use any of them, the compile the library yourself.
-
@SGaist
I right click on the project and add the whole GLFW folder..pro file
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += "C:\glfw\include" INCLUDEPATH += "C:\glfw\deps" SOURCES += \ glfw/deps/getopt.c \ glfw/deps/glad_gl.c \ glfw/deps/glad_vulkan.c \ glfw/deps/tinycthread.c \ glfw/examples/boing.c \ glfw/examples/gears.c \ glfw/examples/heightmap.c \ glfw/examples/offscreen.c \ glfw/examples/particles.c \ glfw/examples/sharing.c \ glfw/examples/simple.c \ glfw/examples/splitview.c \ glfw/examples/wave.c \ glfw/src/cocoa_time.c \ glfw/src/context.c \ glfw/src/egl_context.c \ glfw/src/glx_context.c \ glfw/src/init.c \ glfw/src/input.c \ glfw/src/linux_joystick.c \ glfw/src/monitor.c \ glfw/src/null_init.c \ glfw/src/null_joystick.c \ glfw/src/null_monitor.c \ glfw/src/null_window.c \ glfw/src/osmesa_context.c \ glfw/src/posix_thread.c \ glfw/src/posix_time.c \ glfw/src/vulkan.c \ glfw/src/wgl_context.c \ glfw/src/win32_init.c \ glfw/src/win32_joystick.c \ glfw/src/win32_monitor.c \ glfw/src/win32_thread.c \ glfw/src/win32_time.c \ glfw/src/win32_window.c \ glfw/src/window.c \ glfw/src/wl_init.c \ glfw/src/wl_monitor.c \ glfw/src/wl_window.c \ glfw/src/x11_init.c \ glfw/src/x11_monitor.c \ glfw/src/x11_window.c \ glfw/src/xkb_unicode.c \ main.cpp DISTFILES += \ glfw/CMake/GenerateMappings.cmake \ glfw/CMake/MacOSXBundleInfo.plist.in \ glfw/CMake/i686-w64-mingw32-clang.cmake \ glfw/CMake/i686-w64-mingw32.cmake \ glfw/CMake/modules/FindEpollShim.cmake \ glfw/CMake/modules/FindOSMesa.cmake \ glfw/CMake/modules/FindWaylandProtocols.cmake \ glfw/CMake/modules/FindXKBCommon.cmake \ glfw/CMake/x86_64-w64-mingw32-clang.cmake \ glfw/CMake/x86_64-w64-mingw32.cmake \ glfw/CMakeLists.txt \ glfw/cmake_uninstall.cmake.in \ glfw/examples/CMakeLists.txt \ glfw/examples/glfw.icns \ glfw/examples/glfw.ico \ glfw/examples/glfw.rc \ glfw/src/CMakeLists.txt \ glfw/src/cocoa_init.m \ glfw/src/cocoa_joystick.m \ glfw/src/cocoa_monitor.m \ glfw/src/cocoa_window.m \ glfw/src/glfw3.pc.in \ glfw/src/glfw3Config.cmake.in \ glfw/src/glfw_config.h.in \ glfw/src/mappings.h.in \ glfw/src/nsgl_context.m HEADERS += \ glfw/deps/getopt.h \ glfw/deps/glad/gl.h \ glfw/deps/glad/khrplatform.h \ glfw/deps/glad/vk_platform.h \ glfw/deps/glad/vulkan.h \ glfw/deps/linmath.h \ glfw/deps/mingw/_mingw_dxhelper.h \ glfw/deps/mingw/dinput.h \ glfw/deps/mingw/xinput.h \ glfw/deps/nuklear.h \ glfw/deps/nuklear_glfw_gl2.h \ glfw/deps/stb_image_write.h \ glfw/deps/tinycthread.h \ glfw/deps/vs2008/stdint.h \ glfw/include/GLFW/glfw3.h \ glfw/include/GLFW/glfw3native.h \ glfw/src/cocoa_joystick.h \ glfw/src/cocoa_platform.h \ glfw/src/egl_context.h \ glfw/src/glx_context.h \ glfw/src/internal.h \ glfw/src/linux_joystick.h \ glfw/src/mappings.h \ glfw/src/nsgl_context.h \ glfw/src/null_joystick.h \ glfw/src/null_platform.h \ glfw/src/osmesa_context.h \ glfw/src/posix_thread.h \ glfw/src/posix_time.h \ glfw/src/wgl_context.h \ glfw/src/win32_joystick.h \ glfw/src/win32_platform.h \ glfw/src/wl_platform.h \ glfw/src/x11_platform.h \ glfw/src/xkb_unicode.h
The Qt recognize the function so everything is good. I click on rebuilt all projects
But when I try to built the program I get the following error:
And when I push the run button I get the a loads of errors
I use the code from link here.
-
GLFW already provides a mean to build their library. Use it.
-
And who to built it. I just find the way to use it in VS.
-
Please, read the documentation of the libraries you want to use. It's explained right in their website.
-
-
Other thing is that at glfw\lib-mingw-w64 there is 3 files
glfw3.dll
libglfw3.a
libglfw3dll.athese are libarys so I assume that I could include that so right click add external libary I add: libglfw3.a
.pro file
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp INCLUDEPATH += C:\glfw\include win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../glfw/lib-mingw-w64/ -lglfw3 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../glfw/lib-mingw-w64/ -lglfw3d else:unix: LIBS += -L$$PWD/../../../../glfw/lib-mingw-w64/ -lglfw3 INCLUDEPATH += $$PWD/../../../../glfw/lib-mingw-w64 DEPENDPATH += $$PWD/../../../../glfw/lib-mingw-w64
So it looks good but when I try to build the program I get errors
:-1: error: cannot find -lglfw3d :-1: error: collect2.exe: error: ld returned 1 exit status
-
@bence said in Qt GLFW and GLEW setup:
error: cannot find -lglfw3d
I don't know whether it would give rise to that error message, but I do not see either a
.dll
or a.a
having that trailingd
in its name. When using MSVC, debug libraries have ad
on the end of their name, but I don't think that is the convention when usinggcc
/mingw
. So are you using a linker line designed for MSVC with a build using MinGW? -
@JonB said in Qt GLFW and GLEW setup:
MSVC
At C:\glfw\lib-vc2019 there is 3 files glfw3.dll glfw3.lib glfw3dll.lib
At C:\glfw\lib-mingw-w64 there is 3 files glfw3.dll libglfw3.a libglfw3dll.a I am using this libary but I getting error I know that there is no d in name I add external libary I add libglfw3.a and I disable Mac and Linux platform and I also disable Add d suffix for debug version
lib-mingw-w64 there is nothing related to MSVS I guess
.pro
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += C:\glfw\include win32: LIBS += -L$$PWD/../../../../glfw/lib-mingw-w64/ -lglfw3 INCLUDEPATH += $$PWD/../../../../glfw/lib-mingw-w64 DEPENDPATH += $$PWD/../../../../glfw/lib-mingw-w64 SOURCES += main.cpp
I get 32 errors
undefined reference to `__imp_CreateDCW' undefined reference to `__imp_GetDeviceCaps' undefined reference to `__imp_DeleteDC'
....
-
@bence
The 3 unreferenceds you list come from WinGDI. You would need to link against something linkGdi32.lib
for these, which I suspect you are not doing. Or, I don't know, those leading__imp_
s might indicate you are still somehow trying to link against MSVC libraries.In fact I even see a stackoverflow post covering this for GLFW MinGW link error, which you should read through and follow. It says MinGW has a library
libgdi32.a
for these. -
@JonB But there is no Gdi32.lib file in the folder
And if I just use the following code
int main(void) { if (!glfwInit()) return -1; return 0; }
It still not woriking
-
-
The only thing that I did is I add two file. I assume that I just have to do that.
.pro file
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += C:\glfw\include SOURCES += main.cpp win32: LIBS += -L$$PWD/../../../../glfw/lib-mingw-w64/ -lglfw3 INCLUDEPATH += $$PWD/../../../../glfw/lib-mingw-w64 DEPENDPATH += $$PWD/../../../../glfw/lib-mingw-w64 win32: LIBS += -L$$PWD/../../../../MinGW/lib/ -lgdi32 INCLUDEPATH += $$PWD/../../../../MinGW/include DEPENDPATH += $$PWD/../../../../MinGW/include win32: LIBS += -L$$PWD/../../../../MinGW/lib/ -lopengl32 INCLUDEPATH += $$PWD/../../../../MinGW/include DEPENDPATH += $$PWD/../../../../MinGW/include
-
It looks like you are mixing two different MinGW installations.