【发布时间】:2023-02-17 17:17:04
【问题描述】:
TLDR:GLAD 头文件不允许我使用 openGL 命令,我也不知道为什么。请帮忙。
我最近决定从头开始重新学习 openGL,但几乎立即就被一个有趣的新问题打断了。这是一个细分: -我在 Windows 10 笔记本电脑上。 -我正在用 C++ 编码。 -我正在使用 MinGW 的 g++ 工具进行编译。 -我正在使用 GLFW 和 GLAD。 - 我的文件布局是这样的:
OpenGLTest
include
glad
glad.h
GLFW
glfw3.h
glfw3native.h
KHR
khrplatform.h
glad.c
glfw3.dll
GraphicsTest.cpp(Main File)
libglfw3dll.a(I have forgotten what this does, it's a remnant from older attempts at openGL. Relevant?)
Makefile(a single command: "g++ GraphicsTest.cpp -g -L glad.c glfw3.dll")
- 据我所知,如果来自 GLAD 和 openGL 的任何和所有命令都被注释掉,该程序将可以完美地编译和运行。然后它所做的就是制作一个小窗口。 - 如果上述行没有被注释掉,编译器将抛出一系列错误,所有错误都遵循以下形式:
D:\Documents\Programming\C++\Programs\OpenGLTest/GraphicsTest.cpp:23: undefined reference to `gladLoadGL'
gladLoadGL 被替换为相关函数。 -文件本身是这样读的:
#include<iostream>
#include<glad\glad.h>
#include<GLFW\glfw3.h>
static void whatIsGoingOnSeriouslyGuysHelp(int id,const char* desc)
{
std::cout<<desc;
}
int main()
{
glfwSetErrorCallback(&whatIsGoingOnSeriouslyGuysHelp);
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(100,100,"TEST",NULL,NULL);
if (window == NULL)
{
std::cout<<"Window Creation Error";
}
glfwMakeContextCurrent(window);
gladLoadGL();
//glViewport(0,0,100,100);
while (!glfwWindowShouldClose(window))
{
//std::cout<<"?";
glfwPollEvents();
glfwSwapBuffers(window);
//glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
//glClear(GL_COLOR_BUFFER_BIT);
}
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
我曾尝试重新安装 GLAD,但没有任何效果。我没有尝试重新安装 GLFW,但我不认为 *这就是问题所在。所以,我不确定该怎么做。许多文档和大多数教程都将链接文件视为一次性步骤,因为据我所知,大多数 IDE 基本上都是这样。结果,我没有找到很多可以帮助我的东西(因为我没有使用 IDE)。请纠正我的任何误解或我正在犯的错误。预先感谢您的建议。 -悲伤的机器人
【问题讨论】:
-
为什么不使用像 CMake 这样的现代构建系统?
标签: c++ opengl mingw glfw glad