0

我收到以下错误:
视频卡 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
4

1 回答 1

0

我遇到了同样的错误,但作为一名资深的 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 的存储库中没有解决这个问题!

于 2014-08-10T21:29:57.437 回答