簡體   English   中英

對wgl -functions的未定義引用

[英]Undefined reference to wgl -functions

我正在嘗試通過Windows API創建OpenGL上下文。 目前,其他所有內容都還不錯,但是我無法弄清楚如何與正確的庫鏈接以訪問wgl ..函數。

我使用MinGW進行編譯。 和一個make文件。 我嘗試鏈接至:-lmingw32 -mwindows -lgdi32 -lopengl32,但沒有運氣來解決此問題。

我正在#包括windows.h和gl.h,但它們都不包含wgl函數? 我想念什么?

下面是我的代碼的WM_CREATE事件部分(這是唯一與此有關的事情)。

    case WM_CREATE:
    {   PIXELFORMATDESCRIPTOR pfd =
        {
            sizeof(PIXELFORMATDESCRIPTOR),
            1,
            PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,    //Flags
            PFD_TYPE_RGBA,            //The kind of framebuffer. RGBA or palette.
            32,                        //Colordepth of the framebuffer.
            0, 0, 0, 0, 0, 0,
            0,
            0,
            0,
            0, 0, 0, 0,
            24,                        //Number of bits for the depthbuffer
            8,                        //Number of bits for the stencilbuffer
            0,                        //Number of Aux buffers in the framebuffer.
            PFD_MAIN_PLANE,
            0,
            0, 0, 0
        };

        // Get current handle to device context.
        HDC hDc = GetDC(hWnd);

        // Generate pixel format.
        int wPf = ChoosePixelFormat(hDc, &pfd);

        // Set pixel format.
        SetPixelFormat(hDc, wPf, &pfd);

        // OpenGL context
        HGLRC GLc = wglCreateContext(hDc);

        // Make it current.
        wglMakeCurrent(hDc, GLc);

        break;
    }

這是我的make文件:

CXX = g++
SRC = engine.cpp os.cpp
DST = build/engine.exe
PATHS = -L c:\MinGW\lib -I c:\MinGW\include
FLAGS = -mwindows
LIBS = -lmingw32 -opengl32

$(DST): $(SRC)
    $(CXX) -o $(DST) $(FLAGS) $(PATHS) $(SRC) $(LIBS)

您的問題出在這里:

 $(DST): $(SRC) $(COMPILER) $(FLAGS) $(PATHS) $(LIBS) -o $(DST) $(SRC) 

通常,對於舊式GNU鏈接器,必須在引用符號的文件之后的文件中引入符號。 您的文件位於最后,通常會弄亂鏈接。 嘗試以這種方式重新排序:

$(DST): $(SRC)
    $(CXX) -o $(DST) $(FLAGS) $(PATHS) $(SRC) $(LIBS)

順便說一句:我們永遠不會在makefile中將變量稱為“ COMPILER”,因為單個項目可能會使用許多不同的編譯器。 包含C ++編譯器可執行文件名稱的變量通常稱為CXX (而C編譯器由Makefile中的變量CC命名)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM