vs配置freeglut+glew
vs配置freeglut+glew
以前配置opengl大多稀里糊涂地配置,有时候用别人现成写好的cmake来配,但是很多cmake里的内容为什么这么写并不理解,因此遇到很多很好的开源项目也没办法使用。因此还是决定来学习一下vs手动配置glew+freeglut。下面是一些参考使用的链接
freeglut+glew
OpenGL学习 环境搭建Clion+glew+freeglut+mingw.使用这个链接中提供的下载地址下载了freeglut和glew的64位版本。
接下来我没有选择cmake而是选择在vs中进行手动配置,打开项目属性,在VC++目录中找到包含(头)目录、库目录,输入自己下载库的路径;在链接器的输入中找到附加依赖项,输入库名(具体做法可以类比这个链接中的六、c)。
opengl32.lib
freeglut.lib
glew32.lib
事实上以上手动配置过程与下面的cmake内容是一一对应的
cmake_minimum_required(VERSION 3.15)
project(Graph)
set(CMAKE_CXX_STANDARD 14)
link_directories("F:/freeglut/lib/x64")
link_directories("F:/glew-2.1.0/lib/Release/x64")
include_directories("F:/freeglut/include")
include_directories("F:/glew-2.1.0/include")
add_executable(Graph main.cpp)
target_link_libraries(Graph libopengl32.a libfreeglut.a glew32.lib)
接下来导入glew和freeglut的dll文件,都放在项目的根目录下即可。
仍然使用OpenGL学习 环境搭建Clion+glew+freeglut+mingw中的测试例子,最终成功画出了一个三角形。
- opengl32.lib是windows自带的,应该在vs搜索目录里就存在,因此不需要再包含与链接,另外opengl32是64位的
- freeglut与glew库需要附加依赖库&导入dll,因为他们是动态库(linux下又叫共享库),但是并不是所有库都需要,比如eigen。
一开始看到我下载的开源项目里使用win32,并且include了<glut.h>,以为要使用glut.h库,专门找来了各种glut资源尝试(glutglut库很早就不推荐使用了,只有32位版本的,我还一度把项目配置的cuda改成32位,但是仍然没配置好),后来看到这个链接才知道feeglut是glut的一个开源版本,64位的程序直接配置freeglut就好了。
glad+glfw
这一块可以直接参考learnopengl的前四小节,即使不使用该方案,这个配置教程也对新手十分友好,可以一试。
一些其他学习到的东西:
- 静态库的两个缺点是空间浪费和全量更新,动态库(共享库)都能解决。参考链接
- 另外还有一点,在配置复杂的开源项目时,如果配置失败需要把它拆解成小问题,先进行单个库的配置。