Mac10.13.6搭建OPenGL环境

原文地址:https://www.jianshu.com/p/a9748669535e

今天花了大半天的时间,把mac opengl的环境搭建好,在此非常感谢原作者。

本博客主要记录了我自己搭建过程中遇到的一些问题,可能对像我这样的小白来说有点用处:

一、安装GLEW的过程中遇到的问题:

用命令安装glew之后编译不了提示:make: *** No targets specified and no makefile found.  Stop.  对我这样的小白来说,真不知道什么原因,sou搜了一通,又说改用Unix平台,但是我真不知道怎么操作,所以换了另外一种编译方式,直接cd到glew目录下,然后 输入命令:sudo make install 成功生成静态文件  执行结果:

strip -x lib/libGLEW.a

install -d -m 0755 "/usr/local/lib"

install -m 0644 lib/libGLEW.2.1.0.dylib "/usr/local/lib/"

ln -sf libGLEW.2.1.0.dylib "/usr/local/lib/libGLEW.2.1.dylib"

ln -sf libGLEW.2.1.0.dylib "/usr/local/lib/libGLEW.dylib"

install -m 0644 lib/libGLEW.a "/usr/local/lib/"

install -d -m 0755 "/usr/local/lib/pkgconfig"

install -d -m 0755 "/usr/local/lib/pkgconfig"

install -m 0644 glew.pc "/usr/local/lib/pkgconfig/"

二、在创建macos项目之后编译工程的时候,链接错误:

"_IODisplayCreateInfoDictionary", referenced from:

      _getDisplayName in libglfw3.a(cocoa_monitor.m.o)

  "_IOHIDDeviceCopyMatchingElements", referenced from:

      _matchCallback in libglfw3.a(cocoa_joystick.m.o)

  "_IOHIDDeviceGetProperty", referenced from:

我这边工程除了添加 Openggl.framework  glew  glfw 静态库 之外  还需要添加cocoa.framework   Iokit.framework

这样才能编译成功

方案地址:https://stackoverflow.com/questions/18391487/compiling-with-glfw3-linker-errors-undefined-reference

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Qt上使用EGL搭建OpenGL环境的步骤如下: 1. 在Qt中创建一个新项目,选择“Empty Qt Project”模板。 2. 在项目文件夹中创建一个新的文件夹,命名为“opengl”,然后在该文件夹中创建一个新的文件,命名为“opengl.qrc”。 3. 在“opengl.qrc”文件中添加你的OpenGL库,这样你的Qt项目就能够调用该库。 4. 在项目文件夹中创建一个新的源文件,命名为“main.cpp”。 5. 在“main.cpp”文件中添加以下代码: ```c++ #include <QGuiApplication> #include <QOpenGLContext> #include <QOpenGLFunctions> #include <EGL/egl.h> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); // 创建EGL显示连接 EGLDisplay eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); eglInitialize(eglDisplay, 0, 0); // 配置EGL显示属性 EGLConfig eglConfig; EGLint numConfigs; EGLint configAttribs[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_NONE }; eglChooseConfig(eglDisplay, configAttribs, &eglConfig, 1, &numConfigs); // 创建EGL上下文 EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; EGLContext eglContext = eglCreateContext(eglDisplay, eglConfig, EGL_NO_CONTEXT, contextAttribs); // 获取Qt的OpenGL上下文 QOpenGLContext *qtContext = QOpenGLContext::currentContext(); QSurface *qtSurface = qtContext->surface(); // 将Qt的OpenGL上下文与EGL上下文关联 EGLSurface eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (EGLNativeWindowType)qtSurface, NULL); eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); // 初始化OpenGL函数 QOpenGLFunctions *gl = qtContext->functions(); // 在此处添加你的OpenGL代码 // 释放EGL上下文和显示连接 eglMakeCurrent(eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); eglDestroySurface(eglDisplay, eglSurface); eglDestroyContext(eglDisplay, eglContext); eglTerminate(eglDisplay); return app.exec(); } ``` 6. 在代码中添加你的OpenGL代码。 7. 编译并运行你的Qt项目,确保它能够正常工作。 这样,你就成功地在Qt中使用EGL搭建OpenGL环境

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值