Как решить неопределенные ссылки, библиотека не импортирована, или другие проблемы - PullRequest
1 голос
/ 10 мая 2019

Я пытаюсь использовать проект Win32 GUI в проекте, но при его компиляции я получаю множество неопределенных ошибок ссылок.

|| === Сборка: отладка в 05.9.finally (компилятор: GNU GCC Compiler) === |obj \ Debug \ main.o || В функции Z4OpenP6HWND__':| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|61|undefined reference to wglCreateContext @ 4 '|C: \ Users \ Администратор \ Desktop \ 计算机 图形 \ 05.9.finally \ main.cpp | 63 | неопределенная ссылка на wglMakeCurrent@8'| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|65|undefined reference to glClearColor @ 16 '|obj \ Debug \ main.o || В функции Z4Initv':| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|76|undefined reference to glBlendFunc @ 8 '|C: \ Users \ Администратор \ Desktop \ 计算机 图形 \ 05.9.finally \ main.cpp | 77 | неопределенная ссылка на glClearColor@16'| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|78|undefined reference to glClearDepth @ 8 '|C: \ Users \ Администратор \ Desktop \ 计算机 图形 \ 05.9.finally \ main.cpp | 79 | неопределенная ссылка на glDepthFunc@4'| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|80|undefined reference to glEnable @ 4 '|C: \ Users \ Администратор \ Desktop \ 计算机 图形 \ 05.9.finally \ main.cpp | 81 | неопределенная ссылка на glShadeModel@4'| C:\Users\Administrator\Desktop\计算机图形\05.9.finally\main.cpp|82|undefined reference to glHint @ 8 '|obj \ Debug \ main.o || В функции `Z6Draw3Dv ': |

#include <GL/gl.h>
#include <GL/glut.h>
#include <windows.h>
GLfloat step = 0.0f;

HINSTANCE hInstance;                                         // 系统实例句柄
HWND      hWndMain;                                          // 主窗体句柄
HWND      hWnd;                                              // 窗体句柄变量定义
HDC       hDC;                                               // 设备描述表变量定义
PIXELFORMATDESCRIPTOR pfd;                                   // 像素格式结构变量定义
HGLRC     hGLRC;                                             // OpenGL渲染描述表变量定义

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);        // 窗体过程函数声明

GLboolean keys[256];
GLfloat rotStep = 30.0f;
void keyPress();


GLuint Open(HWND phWnd)

{
      hWnd = phWnd;

      hDC = GetDC(hWnd);

      pfd.dwDamageMask    = 0;                       // 忽略层遮罩

      int pixelformat = ChoosePixelFormat(hDC, &pfd);

      SetPixelFormat(hDC, pixelformat, &pfd);

      hGLRC = wglCreateContext(hDC);

      wglMakeCurrent(hDC,hGLRC);

      glClearColor(0.0f, 0.0f, 0.0f, 1.0f);          // 初始化背景为灰色

      return 0;
}

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Полагаю, вы бы уже решили это; в противном случае вы можете попробовать указать правильный путь к библиотеке. Используйте параметры командной строки -L для пути к папке библиотеки и -l для имени библиотеки при компиляции / компоновке.

Онлайн-поиск для OpenGL предполагает, что имена файлов библиотеки могут быть любыми или всеми из них: opengl32.a or opengl32.lib, glu32.a or glu32.lib, freeglut.a or freeglut.lib (выберите .a, если вы работаете в Linux или .lib в Windows) .

0 голосов
/ 10 мая 2019

У вас есть косая черта в именовании.Может быть, вы хотели #include "путь / имя".

...