how to build Mesa

本文详细介绍了如何在Windows环境下编译Mesa OpenGL库和GLUT窗口管理器,包括资源准备、编译步骤、GLSL demo程序创建等关键步骤。确保了程序正确链接Mesa库,避免了与Windows自带OpenGL库的冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

(1)    资源准备:下载MesaDemos-7.8.2.tar.bz2MesaGLUT-7.8.2.tar.bz2MesaLib-7.8.2.tar.bz2,并解压在同一目录;

(2)    编译mesaOpenGL基本库:在Mesa-7.8.2\windows\VC8\mesa下,打开mesa.sln解决方案,直接build就可以了;在Mesa-7.8.2\windows\VC8\mesa\debug static crt目录下将会生成静态库mesa.lib, OPENGL32.lib, GLU32.lib, OSMESA32.lib及对应的动态链接库:OPENGL32.dllGLU32.dllOSMESA32.dll

(3)    编译GLUT:为了在windows下使用opengl,一般有个open glut来管理窗口和事件是比较实用的,mesa也提供了glut

打开Mesa-7.8.2\windows\VC8\progs下的progs.sln解决方案,选择并build glut这个工程,可在Mesa-7.8.2\windows\VC8\progs\debug static crt下可得到GLUT32.libGLUT32.dll

(4)    GLSL demo程序progs.sln解决方案中已经包含了一个常规的demogears,即用OpenGL1.x写的一个齿轮转动的程序。Mesa-7.8.2\progs\demos下其实有很多demo,但只有源程序和Makefile,没有windows下的vc工程,这些源程序之间的关系不好搞清楚。

既然头文件、lib库和代码都有了,建一个GLSLdemo程序,应该也不难。为偷懒起见,只是把gears改造了一下,demo程序就自己写好了,略。 GL/glew.h封装了opengl接口的声明,glew扩展库的好处可以google一下。为了使用它,把Mesa-7.8.2\src\glew下的glew.c加到了工程中(本来应该把glew build成一个动态库的,但为了偷懒,没有这样做,直接加了源文件,在工程属性中的预处理器定义中加入GLEW_STATIC)。然后配置一下工程属性,添加如下包含目录:Mesa-7.8.2\include,链接目录:Mesa-7.8.2\lib,及链接项:GLU32.lib GLUT32.lib OPENGL32.lib。就可以build你的demo程序了。

使用mesa时,要注意的是,为了避免程序链接windows自带的opengl32.dll,需要把用mesa编出来的OPENGL32.dllGLU32.dllGLUT32.dll拷贝到可执行文件的所在目录。


Xshell 8 (Build 0068) Copyright (c) 2024 NetSarang Computer, Inc. All rights reserved. Type `help' to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.3.57:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.9.140-tegra aarch64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage This system has been minimized by removing packages and content that are not required on a system that users do not log into. To restore this content, you can run the 'unminimize' command. 762 packages can be updated. 440 of these updates are security updates. To see these additional updates run: apt list --upgradable Last login: Wed Mar 26 11:41:56 2025 from 192.168.3.62 bingda@robot:~$ roslaunch robot_navigation lidar_rviz.launch ... logging to /home/bingda/.ros/log/b5e7ab2e-0a05-11f0-86b3-1c995715ad1a/roslaunch-robot-21153.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://192.168.3.57:39603/ SUMMARY ======== PARAMETERS * /rosdistro: melodic * /rosversion: 1.14.10 NODES / rviz (rviz/rviz) ROS_MASTER_URI=http://192.168.3.57:11311 process[rviz-1]: started with pid [21172] libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) libGL error: failed to load driver: swrast libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) libGL error: failed to load driver: swrast [ WARN] [1742968043.734649687]: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-i02lBV/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61) rviz::RenderSystem: error creating render window:
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值