话不多说,我想通过vim编辑器以及gcc编译器生成和学习opengl编程.
1.1下载opengl源代码并编译
git clone https://github.com/glfw/glfw.git,下载完成之后到glfw目录下建立一个glfw-build目录
在glfw-build目录中执行cmake ..。之后再执行make。最后执行make install。
给我提示信息:libglfw3.a安装在了/usr/local/lib目录下,glfw3.h安装在了/usr/local/include/GLFW目录下
1.2在glfw目录下建立一个mytests的目录,在该目录中建立一个first.c的程序,内容可以在glfw/example目录下拷贝
需要注意的是由于头文件glfw3.h安装在了/usr/local/include/GLFW目录下,所以头文件应该这样写#include <GLFW/glfw3.h>
使用 gcc first.c -o first -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
呵呵,成功生成了first可执行文件.运行之。。。。这么点过程耗费了很多时间,原因是上面的命令不完整(网上千篇一律),,总结下以后就照官方文档来吧,不要听其他人瞎吹。。
1.3但是随后我就发现问题了,我是参考https://learnopengl-cn.github.io/学习opengl的,于是我从其github项目地址拷贝一个
https://github.com/JoeyDeVries/LearnOpenGL/blob/master/src/1.getting_started/1.1.hello_window/hello_window.cpp
我运行发现报错"Undefined symbols for architecture x86_64".
我做了两件事:
1.3.1 切换mac自带编译器clang为gnuc
将mac自带的clang编译器换成了gnuc编译器,替换方法为先brew install gcc安装好了之后配置环境变量,修改~/.zshrc
PATH=$PATH:/usr/local/Cellar/gcc/7.3.0_1/bin/;
alias gcc='/usr/local/Cellar/gcc/7.3.0_1/bin/gcc-7'
alias cc='/usr/local/Cellar/gcc/7.3.0_1/bin/gcc-7'
alias g++='/usr/local/Cellar/gcc/7.3.0_1/bin/g++-7'
alias c++='/usr/local/Cellar/gcc/7.3.0_1/bin/c++-7'
1.3.2 解决库依赖和链接问题
上述成功后我发现上述hello_window.cpp还需要glad,于是我下载了glad,将KHR和glad目录拷贝到/urs/include下,将glad.c拷贝到当前目录下
编译glad.c为libglad.so:gcc -c glad.c -o glad.o ; gcc -shared -fPIC -o libglad.so glad.o ;
将libglad.so链接到可执行文件中:gcc first.c -o first -L. -lglad -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
呵呵,成功生成了first可执行程序.运行之.........开心。。。。。。。。。
mac opengl环境
最新推荐文章于 2024-07-28 11:57:10 发布