Skip to content

OpenGL linker error (MSVC 17 2022) windows 11 #2

@meissner61

Description

@meissner61

I am getting the following error when using the cmake file AS IS without editing it:

C:\dev_apps\SDL-OpenGL\build>cmake ..
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621.
-- Found OpenGL: opengl32  found components: OpenGL
-- Found OpenGL: opengl32
-- Configuring done
CMake Error at CMakeLists.txt:33 (target_link_libraries):
  Target "Tetris" links to:

    OpenGL::OpenGL

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

I then tried to remove the OpenGL::OpenGL in the target_link_libraries command which allowed it to proceed to creating a .sln file but now I am getting a couple of linking errors for gl function. what should I add manually to my lining options so that the gl functions can be used?

EDIT: Some of the linking errors I get are:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol __imp__glBlendFunc@8 referenced in function "public: virtual bool __thiscall WindowSdl::init(int,int,int,int,bool)" (?init@WindowSdl@@UAE_NHHHH_N@Z)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glClear@4 referenced in function "public: virtual void __thiscall WindowSdl::clear(void)" (?clear@WindowSdl@@UAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glClearColor@16 referenced in function "public: virtual void __thiscall WindowSdl::clear(void)" (?clear@WindowSdl@@UAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glEnable@4 referenced in function "public: virtual bool __thiscall WindowSdl::init(int,int,int,int,bool)" (?init@WindowSdl@@UAE_NHHHH_N@Z)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glGetBooleanv@8 referenced in function "public: virtual void __thiscall WindowSdl::logGlParams(void)" (?logGlParams@WindowSdl@@UAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glGetError@0 referenced in function "public: virtual void __thiscall WindowSdl::swapBuffer(void)" (?swapBuffer@WindowSdl@@UAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glGetIntegerv@8 referenced in function "public: virtual void __thiscall WindowSdl::logGlParams(void)" (?logGlParams@WindowSdl@@UAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glGetString@4 referenced in function "public: virtual bool __thiscall WindowSdl::init(int,int,int,int,bool)" (?init@WindowSdl@@UAE_NHHHH_N@Z)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glViewport@16 referenced in function "public: virtual bool __thiscall WindowSdl::init(int,int,int,int,bool)" (?init@WindowSdl@@UAE_NHHHH_N@Z)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(window_sdl.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glDrawArrays@12 referenced in function "public: void __thiscall SpriteRenderer::drawSprite(class Texture2D const &,class Vector2,class Vector2,float,class Color)" (?drawSprite@SpriteRenderer@@QAEXABVTexture2D@@VVector2@@1MVColor@@@Z)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(renderer_sprite.obj)	1	
Error	LNK2001	unresolved external symbol __imp__glDrawArrays@12	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(renderer_geometry.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glDeleteTextures@8 referenced in function "public: static void __cdecl ResourceManager::clear(void)" (?clear@ResourceManager@@SAXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(resource_manager.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glBindTexture@8 referenced in function "public: void __thiscall Texture2D::generate(void)" (?generate@Texture2D@@QAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(texture.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glGenTextures@8 referenced in function "public: __thiscall Texture2D::Texture2D(void)" (??0Texture2D@@QAE@XZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(texture.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glTexImage2D@36 referenced in function "public: void __thiscall Texture2D::generate(void)" (?generate@Texture2D@@QAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(texture.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glTexParameterf@12 referenced in function "public: void __thiscall Texture2D::generate(void)" (?generate@Texture2D@@QAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(texture.obj)	1	
Error	LNK2019	unresolved external symbol __imp__glTexParameteri@12 referenced in function "public: void __thiscall Texture2D::generate(void)" (?generate@Texture2D@@QAEXXZ)	Tetris	C:\dev_apps\SDL-OpenGL\build\engine.lib(texture.obj)	1	

EDIT2: I got it to build by adding opengl32.lib

but now when it runs i get a Application was unable to start correctly (0xc000007b). Click OK to close the application
Which I guess indicates some sort of .dll mismatch?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions