Mac CLion下OpenGL环境配置
1. 配置glew和glfw
终端下运行下面两句,安装完后在/usr/local/Cellar/下可以找到对应的目录。
brew install glew
brew install glfw3
效果如下所示:

2. 配置glad
glad是为了简化开发而设计的,不是必须的,是一个function loader,在glad文件生成网站配置好,如下所示:

在右下角点击generate生成恰当的glad压缩文件,解压缩后将头文件放到/usr/local/include目录下(glad和KHR文件夹),将源文件拷贝到工程目录下,如下两图所示:


3. 配置CMakeLists文件
下面是CMakeLists的详细配置:
cmake_minimum_required(VERSION 3.12)
project(OpenGL)
set(CMAKE_CXX_STANDARD 14)
set(GLEW_H /usr/local/Cellar/glew/2.1.0/include/GL)
set(GLFW_H /usr/local/Cellar/glfw/3.2.1/include/GLFW)
set(GLAD_H /usr/local/include/glad)
set(KH_H /usr/local/include/KHR)
include_directories(${GLEW_H} ${GLFW_H} ${GLAD_H} ${KH_H})
# 添加目标链接
set(GLEW_LINK /usr/local/Cellar/glew/2.1.0/lib/libGLEW.2.1.dylib)
set(GLFW_LINK /usr/local/Cellar/glfw/3.2.1/lib/libglfw.3.dylib)
link_libraries(${OPENGL} ${GLEW_LINK} ${GLFW_LINK})
# 执行编译命令
# 这个glad.c在第2步中说过要拉到项目中,注意路径
set(SOURCE_FILES "src/glad.c" "main.cpp")
add_executable(OpenGL ${SOURCE_FILES})
# mac下这步很重要
if (APPLE)
target_link_libraries(OpenGL "-framework OpenGL")
target_link_libraries(OpenGL "-framework GLUT")
endif()
注意这样配置之后需要更改/usr/local/include/glad文件夹下的glad.h中的#include <KHR/khrplatform.h>更改为#include <khrplatform.h>,具体步骤:
- 在CLion中打开
glad.c文件,command+点按#include <glad.h>会跳到glad.h - 然后在
glad.h中command+f找到#include <KHR/khrplatform.h>,将它改为#include <khrplatform.h>
如下所示:


4. 运行测试代码
在main.cpp拷贝下面代码,如果能出现图示结果即为成功。

#include <glew.h>
#include <glfw3.h>
#include <iostream>
using namespace std;
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
//如果按下ESC,把windowShouldClose设置为True,外面的循环会关闭应用
if(key==GLFW_KEY_ESCAPE && action == GLFW_PRESS)
glfwSetWindowShouldClose(window, GL_TRUE);
std::cout<<"ESC"<<mode;
}
int main(void)
{
//初始化GLFW库
if(!glfwInit())
return -1;
//创建窗口以及上下文
GLFWwindow* window = glfwCreateWindow(640, 480, "hello world", NULL, NULL);
if(!window)
{
//创建失败会返回NULL
glfwTerminate();
}
//建立当前窗口的上下文
glfwMakeContextCurrent(window);
glfwSetKeyCallback(window, key_callback); //注册回调函数
//循环,直到用户关闭窗口
while(!glfwWindowShouldClose(window))
{
/*******轮询事件*******/
glfwPollEvents();
/*******渲染*******/
//选择清空的颜色RGBA
glClearColor(0.2, 0.3, 0.3, 1);
glClear(GL_COLOR_BUFFER_BIT);
//开始画一个三角形
glBegin(GL_TRIANGLES);
glColor3f(1, 0, 0); //Red
glVertex3f(0, 1, 1);
glColor3f(0, 1, 0); //Green
glVertex3f(-1, -1, 0);
glColor3f(0, 0, 1); //Blue
glVertex3f(1, -1, 0);
//结束一个画图步骤
glEnd();
glBegin(GL_POLYGON);
//再画个梯形,需要注意笔顺
glColor3f(0.5, 0.5, 0.5); //Grey
glVertex2d(0.5, 0.5);
glVertex2d(1, 1);
glVertex2d(1, 0);
glVertex2d(0.5, 0);
glEnd();
/******交换缓冲区,更新window上的内容******/
glfwSwapBuffers(window);
}
glfwTerminate();
return 0;
}
参考资料
Mac CLion下OpenGL环境配置的更多相关文章
- mac系统下ionic环境配置
本人是在mac环境下进行配置的: 下载nodejs:https://nodejs.org/download/ 并双击安装 Cordova and Ionic command-line tools 安装 ...
- VS2010/VS2012/VS2015下openGL环境配置(转)
按:按照下述博文,三个例子均成功. https://blog.csdn.net/so_geili/article/details/51685005 请仔细阅读每一个字. 为了学习<OpenGL超 ...
- mac clion c/c++环境配置
下载安装:https://www.cnblogs.com/sea-stream/p/11220036.html 切换语言:https://www.cnblogs.com/sea-stream/p/11 ...
- mac电脑使用,开发环境配置指南
mac电脑使用,开发环境配置指南 前端工具链,mac下都很好用 用brew来装软件 用brew cask来装应用 Introduction · macOS Setup Guidehttp://sour ...
- 【转存】阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3
阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3 Posted on 2016年2月10日 by 学院君 1.Apache 配置 —————————————————– vi / ...
- MAC系统下Sublime Text3 配置Python3详细教程
MAC系统下Sublime Text3 配置Python3详细教程(亲测有效) https://blog.csdn.net/weixin_41768008/article/details/798590 ...
- mac系统下Eclipse + pydev配置python Interpreter
mac系统下Eclipse + pydev配置python Interpreter 之前都在windows下使用Eclipse + pydev 进行开发,未发现什么异常,最近对wxpy.itcha ...
- mac上搭建mysql环境配置和Navicat连接mysql
mac上搭建mysql环境配置 1.下载mysql for mac: https://downloads.mysql.com/archives/community/ 注意:mysql版本要和你的MAC ...
- Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置
Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置 1.简介 本文主要是 Windows 下 MSYS2 环境配置和 MinGW-w64 C++编译环境配置方法 2.下载 ...
随机推荐
- JavaScript-BOM与DOM
BOM与DOM BOM: Browser Object Model(浏览器对象模型),即把 浏览器 当做一个对象来看待.BOM 除了可以访问文档中的组件之外,还可以访问 浏览器组件,比如页面中的 na ...
- cp/tar/用c语言编写程序 实现cp命令的效果
1.cp (拷贝) 已存在文件路径 要拷贝的文件路径 实现cp命令的代码如下: #include <stdio.h> //因为要在命令中得到两个路径,所以要用到main函数的两个参数 i ...
- 自学Python第一天
大学毕业后在一家第三方小程序公司做客服,心有不甘,看着同学们有做安防售前的,有在政府.企业里面做网络工程师的.更有甚者天天搭建个云计算啥的都是家常便饭,再想想自己,堂堂网络工程专业,却做了客服,还是没 ...
- ubuntu安装苹果Windows以及微软雅黑consolas字体
ubuntu安装苹果Windows以及微软雅黑consolas字体 ubuntu安装苹果字体 wget http://drive.noobslab.com/data/Mac/macfonts.zip ...
- Strusts2
Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是 ...
- bzoj3110(整体二分)
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- python猜数字GUI版本V0.1
非常简单的GUI版猜数字游戏,后面有时间好好研究下 # -*- coding: utf-8 -*-"""Created on Mon Jan 28 16:30:17 20 ...
- linux vi如何保存编辑的文件
按ESC键回到命令模式,输入:w保存即可,或者输入:wq!保存文件并退出. 以下是保存命令: :w 保存文件但不退出vi . :w file 将修改另外保存到file中,不退出vi . :w! ...
- K-DTree学习
应用于K维数据的快速查找,比如横坐标,纵坐标,价格……,本模板以16青岛区域赛K题为例 —— 三维K - D Tree 模板 我们应该都见过平衡树吧,那就是1-D树,变成k维之后,我们连续分割1 - ...
- Redhat7配置ali-yum源
1.删除所有包 rpm -qa|grep yum|xargs rpm -e --nodeps 2.下载相关文件 下载地址 https://mirrors.aliyun.com/centos/7/os ...