我得到的错误如下:
显卡06:03.0 VGA
兼容控制器:Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)
构建命令
./autogen.sh --prefix=$WLD --enable-gles2 --disable-gallium-egl
--with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi
--with-gallium-drivers=r300,r600,swrast,nouveau --disable-dri3 --disable-llvm-shared-libs
使
make[5]: Entering directory `/home/interns/pooja/mesa-10.2n/src/mesa/drivers/dri/nouveau'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/interns/pooja/mesa-10.2n/src/mesa/drivers/dri/nouveau'
Making all in r200
make[5]: Entering directory `/home/interns/pooja/mesa-10.2n/src/mesa/drivers/dri/r200'
CC radeon_buffer_objects.lo
radeon_buffer_objects.c:1:1: error: expected identifier or '(' before '.' token
make[5]: *** [radeon_buffer_objects.lo] Error 1
make[5]: Leaving directory `/home/interns/pooja/mesa-10.2n/src/mesa/drivers/dri/r200'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/interns/pooja/mesa-10.2n/src/mesa/drivers/dri'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/interns/pooja/mesa-10.2n/src/mesa'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/interns/pooja/mesa-10.2n/src/mesa'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/interns/pooja/mesa-10.2n/src'
make: *** [all-recursive] Error 1
我遇到了同样的错误,但是作为一名长期的C程序员,我并不需要查看源代码来查看编译器在抱怨什么。基本上,在"r200"目录中有一堆文件,其中一个是radeon_buffer_objects.c,它引用另一个地方具有相同名称的其他文件,但引用无效。您可以使用"ls -la"命令轻松识别这些文件——每个这样的文件的字符都不超过50个。如果你打开其中任何一个,你会看到里面只有这样的文字:
../radeon/radeon_buffer_objects.c
那么,引用另一个文件的正确方法是:
#include "../radeon/radeon_buffer_objects.c"
所以我只是编辑了r200目录中所有有这个问题的文件,以便正确地引用另一个目录中的其他文件。
请注意,r200目录有一个"server"子目录,其中还有一些文件需要进行类似的编辑。
这样做之后,它编译正常。就在那时,我开始写这条回复信息。但是,编译器在另一个目录中遇到了一个非常类似的问题:
dri_context.c:1:1: error: expected identifer or '(' before '.' token
上面描述的修复应该是相当通用的。我还不知道在所有的mesa最终成功编译之前需要编辑多少地方,但编辑是简单的,如果乏味的话。唯一的问题是为什么没有在下载mesa的存储库中修复这个问题!