简体   繁体   中英

Linking GLFW in Visual Studio Code

I recently tried to understand how to link GLFW, GLEW, glm and Soil2 in Visual Studio Code. I am using mingw 32 bit on a USB key as I prefer being able to program whenever I got a free hour in Highschool and all computers (at school and at home) have Windows installed. Here are my JSON files:

tasks.json (with libwinmm.a):

{
    "version": "2.0.0",
    "tasks": [
      {
        "type": "shell",
        "label": "build",

        "command": "E:/Compiler/mingw32/bin/g++.exe",

        "args": [
          "-g",
          "-o",
          "${workspaceFolder}/opengl.exe",

          /* .cpp Files */
          "${workspaceFolder}/code/main.cpp",

          /* Include paths */
          "-IE:/Compiler/mingw32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++",
          "-I${workspaceFolder}/external/GLEW/include",
          "-I${workspaceFolder}/external/GLFW/include",
          "-I${workspaceFolder}/external/glm/..",
          "-I${workspaceFolder}/external/Soil2/Include",
          "-I${workspaceFolder}",
          "-I${workspaceFolder}/code",

          /* Library paths */
          "-LE:/Compiler/mingw32/i686-w64-mingw32/lib",
          "-L${workspaceFolder}/external/GLEW/lib",
          "-L${workspaceFolder}/external/GLFW/lib-vc2015",
          "-L${workspaceFolder}/external/Soil2/lib",

          /* Libraries */
          "-lmingw32",
          "-lwinmm",
          "-lgdi32",
          "-lopengl32",
          "-lshell32",
          "-luser32",
          "-lglew32",
          "-lglfw3",
          "-lsoil2"
        ],

        "options": {
          "cwd": "E:/Compiler/mingw32/bin"
        }
      }
    ]
  }

launch.json:

 {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "build",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/opengl.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "E:/Compiler/mingw32/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"
        }
    ]
}

c_cpp_properties.json:

{
    "version": 4,
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}",
                "E:/Compiler/mingw32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++",
                "${workspaceFolder}/external/GLEW/include",
                "${workspaceFolder}/external/GLFW/include",
                "${workspaceFolder}/external/glm/..",
                "${workspaceFolder}/external/Soil2/Include",
                "${workspaceFolder}/code/.."
            ],
            "defines": [
                "GLEW_STATIC",
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "E:/Compiler/mingw32/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ]
}

and here is the example code from GLFW documentation I put in code/main.cpp (with glew code):

#include <GL/glew.h>
#include <GLFW/glfw3.h>

#ifdef _WIN32
#pragma comment(lib, "winmm.lib")
#endif // _WIN32

int main(void)
{
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;

    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);

    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    /* Make the window's context current */
    glfwMakeContextCurrent(window);
    if(!glewInit())
      return -1;

    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);

        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

After compiling, this program return this error log:

> Executing task: E:/Compiler/mingw32/bin/g++.exe -g -o E:\Programmes\Projets\Opengl/opengl.exe 
E:\Programmes\Projets\Opengl/code/main.cpp -IE:/Compiler/mingw32/lib/gcc/i686-w64- 
mingw32/7.3.0/include/c++ -IE:\Programmes\Projets\Opengl/external/GLEW/include - 
IE:\Programmes\Projets\Opengl/external/GLFW/include -IE:\Programmes\Projets\Opengl/external/glm/.. - 
IE:\Programmes\Projets\Opengl/external/Soil2/Include -IE:\Programmes\Projets\Opengl - 
IE:\Programmes\Projets\Opengl/code -LE:/Compiler/mingw32/i686-w64-mingw32/lib - 
LE:\Programmes\Projets\Opengl/external/GLEW/lib -LE:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015 -LE:\Programmes\Projets\Opengl/external/Soil2/lib -lmingw32 -winmm -lgdi32 -lopengl32 -lshell32 - 
luser32 -lglew32 -lglfw3 -lsoil2 <

Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
C:\Users\willy\AppData\Local\Temp\ccRDHcUY.o: In function `main':
E:/Programmes/Projets/Opengl/code/main.cpp:20: undefined reference to `_imp__glewInit@0'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/window.c.obj): 
(.text$mn+0x46): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/window.c.obj): 
(.text$mn+0x131): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/window.c.obj): 
(.text$mn+0x23e): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/window.c.obj): 
(.text$mn+0x2a8): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/window.c.obj): 
(.text$mn+0x2d5): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/input.c.obj): 
(.text$mn+0x35): undefined reference to `_ultod3'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/input.c.obj): 
(.text$mn+0x46): undefined reference to `_ultod3'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/input.c.obj): 
(.text$mn+0x46): undefined reference to `_ultod3'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/input.c.obj): 
(.text$mn+0x51): undefined reference to `_dtoul3'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/init.c.obj): 
(.text$mn+0x6): undefined reference to `_chkstk'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/init.c.obj): 
(.text$mn+0x5a): undefined reference to `_imp____stdio_common_vsprintf'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/init.c.obj): 
(.text$mn+0xa6): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/context.c.obj): 
(.text$mn+0xc4): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/context.c.obj): 
(.text$mn+0xea): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/context.c.obj): 
(.text$mn+0x187): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/context.c.obj): 
(.text$mn+0x37e): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/context.c.obj): 
(.text$mn+0x3b8): more undefined references to 
`@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x14): undefined reference to 
`_dtoui3'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x7e): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0xf1): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x123): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x153): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x8b): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0xa2): undefined reference to 
`_imp__CreateDIBSection@24'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0xd6): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0xef): undefined reference to 
`_imp__CreateBitmap@20'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x112): undefined reference to 
`_imp__DeleteObject@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x1b7): undefined reference to 
`_imp__DeleteObject@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x1f7): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x116): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x184): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x1f5): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x2a): undefined reference to @ 
__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_window.c.obj):(.text$mn+0x56): more undefined references 
to `@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x34): undefined reference to 
`_imp__CreateDCW@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x42): undefined reference to 
`_imp__GetDeviceGammaRamp@8'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x49): undefined reference to 
`_imp__DeleteDC@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x97): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x7e): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x26d): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x97): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x238): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x47): more undefined references 
to `@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x92): undefined reference to 
`_imp__CreateDCW@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0xa0): undefined reference to 
`_imp__SetDeviceGammaRamp@8'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0xa7): undefined reference to 
`_imp__DeleteDC@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0xb7): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0xef): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x115): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x58): undefined reference to 
`_imp__CreateDCW@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x5e): undefined reference to 
`_imp__GetDeviceCaps@8'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_monitor.c.obj):(.text$mn+0x7e): undefined reference to 
`_imp__DeleteDC@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0xb0): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x8b): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0xb2): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x30c): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x232): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x71): more undefined 
references to `@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x28a): undefined reference to 
`_libm_sse2_sqrt_precise'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x309): undefined reference to 
`_libm_sse2_sqrt_precise'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x41e): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x47): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x8b): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_joystick.c.obj):(.text$mn+0x190): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_init.c.obj):(.text$mn+0x68): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/win32_init.c.obj):(.text$mn+0xba): more undefined references to 
`@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/monitor.c.obj): 
(.text$mn+0xb1): undefined reference to `_libm_sse2_pow_precise'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/monitor.c.obj): 
(.text$mn+0x117): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib-vc2015/glfw3.lib(CMakeFiles/glfw.dir/monitor.c.obj): 
(.text$mn+0x14a): undefined reference to `@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/egl_context.c.obj):(.text$mn+0x62): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/egl_context.c.obj):(.text$mn+0xb2): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/egl_context.c.obj):(.text$mn+0x106): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/egl_context.c.obj):(.text$mn+0x14e): more undefined references 
to `@__security_check_cookie@4' follow
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0xb5): undefined reference to 
`_imp__DescribePixelFormat@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0xde): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0xf7): undefined reference to 
`_imp__SetPixelFormat@12'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x120): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x425): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x85): undefined reference to 
`_imp__DescribePixelFormat@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x33d): undefined reference to 
`_imp__DescribePixelFormat@16'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x418): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x44a): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x61): undefined reference to 
`_imp__ChoosePixelFormat@8'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x69): undefined reference to 
`_imp__SetPixelFormat@12'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x8c): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0xbc): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0xf2): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x1fc): undefined reference to 
`@__security_check_cookie@4'
E:\Programmes\Projets\Opengl/external/GLFW/lib- 
vc2015/glfw3.lib(CMakeFiles/glfw.dir/wgl_context.c.obj):(.text$mn+0x48): undefined reference to 
`_imp__SwapBuffers@4'
collect2.exe: error: ld returned 1 exit status
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it. 

So neither GLEW or GLFW work, meaning I can only use them with VS Community, which is slower and has no portable mode

It looks like you don't have the .dll file in the working dir of the project. Try moving the GLFW3.dll file to the compile/run location.

If that does not work then try adding #pragma comment(lib, "glfw3.lib") and sometimes windows will need a lib like winmm.lib so do the same thing there too

#ifdef _WIN32
#pragma comment(lib, "winmm.lib")
#endif // _WIN32

Make sure you also have a opengl lib too like glew or opengl32

you can find glew here: HERE

Note: There is better ways of doing this, this is just my way of importing libs into VS/VScode

也许尝试将 main.cpp 放在与 .dll 相同的目录中

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM