- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在阅读 OpenGL 4 Shading Language Cookbook 时, 我遇到了 OpenGL Loader Gen图书馆,并立即想尝试一下。我开始创建一个小示例程序,您可以在下面看到它。
#include "GLFW/glfw3.h"
#include "GL/gl_core_4_1.hpp"
namespace engine
{
class Window
{
private:
const unsigned int width;
const unsigned int height;
const char *title;
const void refresh()
{
glfwSwapBuffers(this -> glfwWindow);
glfwPollEvents();
}
protected:
GLFWwindow *glfwWindow;
public:
Window(const unsigned int width, const unsigned int height, const char title[]): width(width), height(height), title(title)
{
if (glfwInit() != GLFW_TRUE)
{
throw "Couldn't initialise the required GLFW library.";
}
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
if (this -> glfwWindow)
{
throw "Cannot create a secondary window.";
}
this -> glfwWindow = glfwCreateWindow(this -> width, this -> height, this -> title, NULL, NULL);
// This is the crucial line that will stop the program from compiling.
gl::exts::LoadTest context = gl::sys::LoadFunctions();
if (!context)
{
throw "Couldn't initialse the required GL library.";
}
glfwMakeContextCurrent(this -> glfwWindow);
glfwSwapInterval(GLFW_TRUE);
if (!glfwWindow)
{
glfwTerminate();
throw "Couldn't create a new initially empty window.";
}
}
const bool await()
{
this -> refresh();
if (glfwWindowShouldClose(this -> glfwWindow))
{
glfwDestroyWindow(this -> glfwWindow);
glfwTerminate();
return false;
}
return true;
}
};
}
int main(const int argc, const char *argv[])
{
engine::Window window(1280, 720, "Foundation");
while (window.await())
{
}
return 0x00000000;
}
我的下一步是尝试在运行 macOS High Sierra 操作系统的计算机上使用 LLVM
编译器编译程序。
clang++ -o Application.exec Subdirectory/*.cpp -lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
但是,在编译期间我收到以下意外链接器错误:
Undefined symbols for architecture x86_64:
"gl::sys::LoadFunctions()", referenced from:
engine::Window::Window(unsigned int, unsigned int, char const*) in Application-58a670.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这是我的实际问题:如何让上面显示的程序使用前面提到的 OpenGL Loader Gen 进行编译?图书馆?
最佳答案
来自 the docs
The above command line will generate gl_core_3_3.h and gl_core_3_3.c files. Simply include them in your project; there is no library to build, no unresolved externals to filter through.
您需要运行他们的生成器来生成这些源文件。
关于c++ - 尝试使用 glLoadGen 时出现链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232896/
在阅读 OpenGL 4 Shading Language Cookbook 时, 我遇到了 OpenGL Loader Gen图书馆,并立即想尝试一下。我开始创建一个小示例程序,您可以在下面看到它。
我正在使用 C++ 在 Windows 8.1 上使用 Qt5.4 编写 3D 应用程序的接口(interface)。该应用程序正在使用 glLoadGen 加载 OpenGL 函数。 不,问题是,在
使用 GLLoadGen 生成的 GL 加载器包含以下代码: static void* AppleGLGetProcAddress (const GLubyte *name) { static c
我正在尝试为 OpenGL 工作设置跨平台代码库,以下代码在我硬盘驱动器的 Windows 7 分区上绘制得很好。但是,在 Mavericks 上,我只看到黑屏并且无法弄清楚原因。我已经尝试了指南和此
我是一名优秀的程序员,十分优秀!