编译安装Mesa,LLVM的详细步骤及错误汇总

本文详细记录了在Ubuntu系统中编译安装Mesa 10.3.5和LLVM的过程,包括遇到的错误及解决方法。在安装Mesa时,遇到dri2proto、libdrm_radeon等依赖问题,通过调整PKG_CONFIG_PATH和安装相关包解决。在安装LLVM时,由于GCC版本过旧和找不到共享库等问题,需要升级GCC、下载源码编译或使用预编译二进制文件。最后通过autoreconf命令解决了aclocal-1.14缺失的问题,顺利完成安装。
部署运行你感兴趣的模型镜像

安装VTK之前需要先装Mesa库,本文安装版本为:Mesa 10.3.5


下载MesaLib-10.3.5.tar.gz


安装步骤:


1. 配置

sudo ./configure


报错:

checking for DRI2PROTO... no

configure: error: Package requirements (dri2proto >= 2.6) were not met: No package 'dri2proto' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables DRI2PROTO_CFLAGS and DRI2PROTO_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.


搜索并安装该包

apt-file search dri2proto

x11proto-dri2-dev: /usr/include/X11/extensions/dri2proto.h

x11proto-dri2-dev: /usr/share/doc/x11proto-dri2-dev/dri2proto.txt.gz

x11proto-dri2-dev: /usr/share/pkgconfig/dri2proto.pc


sudo apt-get install x11proto-dri2-dev


继续配置

sudo ./configure


提示缺少包

dri3proto


安装后继续配置。仍然报错,根据错误逐条解决,提示少什么包,你就装什么包就行。简略的列出中间需要装的包们如下:


sudo apt-get install xutils-dev

sudo apt-get install flex bison

sudo apt-get install libdrm-dev

sudo apt-get install xcb

sudo apt-get install libx11-xcb-dev libxcb-glx0 libxcb-glx0-dev

sudo apt-get install xorg-dev

sudo apt-get install libxcb-dri2-0-dev


继续配置,仍然报错:

checking for DRIGL... no

configure: error: Package requirements (x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8 xxf86vm) were not met:

No package 'x11-xcb' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables DRIGL_CFLAGS and DRIGL_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.


安装包:

sudo apt-get install libegl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev


继续配置,仍然报错:

configure: error: Package requirements (dri3proto >= 1.0) were not met:

No package 'dri3proto' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

没搜到这个包,Google了一下,最后这样解决:在配置命令后面加上--disable-dri3就可以,继续配置:

sudo ./configure --disable-dri3


继续报其它错误:

configure: error: libudev-dev or sysfs required for building DRI


sudo apt-get install libudev-dev


sudo ./configure --disable-dri3


报错:

checking for RADEON... no

configure: error: Package requirements (libdrm_radeon >= 2.4.56) were not met:

Requested 'libdrm_radeon >= 2.4.56' but version of libdrm_radeon is 2.4.52

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables RADEON_CFLAGS and RADEON_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.


下载安装libdrm-2.4.58.tar.gz,下载地址

cd libdrm-2.4.58

sudo ./config

make

make install


安装完继续配置mesa,继续报新错误:

checking for XCB_DRI2... no

configure: error: Package requirements (x11-xcb xcb-dri2 >= 1.8 xcb-xfixes) were not met:

No package 'xcb-xfixes' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables XCB_DRI2_CFLAGS and XCB_DRI2_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.


apt-file search xcb-xfixes

libxcb-xfixes0: /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0

libxcb-xfixes0: /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0

libxcb-xfixes0: /usr/share/doc/libxcb-xfixes0/changelog.Debian.gz

libxcb-xfixes0: /usr/share/doc/libxcb-xfixes0/copyright

libxcb-xfixes0-dbg: /usr/share/doc/libxcb-xfixes0-dbg/changelog.Debian.gz

libxcb-xfixes0-dbg: /usr/share/doc/libxcb-xfixes0-dbg/copyright

libxcb-xfixes0-dev: /usr/lib/x86_64-linux-gnu/libxcb-xfixes.a

libxcb-xfixes0-dev: /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so

libxcb-xfixes0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/xcb-xfixes.pc

libxcb-xfixes0-dev: /usr/share/doc/libxcb-xfixes0-dev/changelog.Debian.gz

libxcb-xfixes0-dev: /usr/share/doc/libxcb-xfixes0-dev/copyright


sudo apt-get install libxcb-xfixes0 libxcb-xfixes0-dev


sudo ./configure --disable-dri3


报错:

checking for RADEON... yes

configure: error: LLVM is required to build Gallium R300 on x86 and x86_64


sudo apt-get install llvm


安装后不行,这个默认版本不够用!!错误如下:

checking for llvm-config... /usr/bin/llvm-config

configure: error: LLVM 3.1 or newer is required


下载LLVM 3.5.0,

http://llvm.org/releases/download.html#3.5

下载的压缩文件为:llvm-3.3.src.tar.gz

解压

cd llvm-3.5.0.src/

./configure

...

checking target architecture... x86_64

checking whether GCC is new enough... no

configure: error:

The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade to GCC 4.7. You may pass --disable-compiler-version-checks to configure to bypass these sanity checks.


就像这里说的,clang 3.4 is not supported in ubuntu 12.04 because it needs libstdc++ 4.8.可以直接使用官网提供的二进制的库。

但是我update gcc to 4.8 on Ubuntu 12.04,方法点此这里

升级到gcc4.8以后,继续配置

./configure

成功

make

llvm[0]: Constructing LLVMBuild project information.

make[1]: Entering directory `/install/llvm-3.5.0.src/lib/Support'

llvm[1]: Compiling APFloat.cpp for Release+Asserts build

llvm[1]: Compiling APInt.cpp for Release+Asserts build

llvm[1]: Compiling APSInt.cpp for Release+Asserts build

…...

make[1]: Nothing to be done for `all'.

make[1]: Leaving directory `/install/llvm-3.5.0.src/bindings'

llvm[0]: ***** Completed Release+Asserts Build


编译完成。

sudo make install


LLVM装完后。继续配置Mesa。

cd ../Mesa-10.3.5/

sudo ./configure --disable-dri3


报错:

checking for RADEON... yes

configure: error: Could not find llvm shared libraries:

  Please make sure you have built llvm with the --enable-shared option and that your llvm libraries are installed in /usr/local/lib

  If you have installed your llvm libraries to a different directory you can use the --with-llvm-prefix= configure flag to specify this directory.

  NOTE: Mesa is attempting to use llvm shared libraries by default.

  If you do not want to build with llvm shared libraries and instead want to use llvm static libraries then add --disable-llvm-shared-libs to your configure invocation and rebuild.


找不到LLVM的shared library。这个问题其实就是我的LLVM没装对。这里有2种解决途径:

途径一:

修改configure文件,找到BUILD_SHARED_LIBS,设置为ON。即:

option(BUILD_SHARED_LIBS

"Build all libraries as shared libraries instead of static" ON)

重新配置,编译,安装成功就可以了。或者可以试试这篇作者中的方法,直接./configure --enable-shared=yes,配置应该一样效果。


途径二: 直接用官网http://llvm.org/releases/download.html#3.5,提供的Pre-built Binaries,他们提供了丰富的版本。比如Download LLVM 3.3下面的


就是适合我系统,下载下来后文件名为:clang+llvm-3.3-amd64-Ubuntu-12.04.2.tar.gz,只需要解压后将解压出来的文件夹中的文件拷贝到/usr/local/中对应的文件夹里就可以使用了。


成功装完LLVM之后。继续配置Mesa。

cd ../Mesa-10.3.5/

sudo ./configure --disable-dri3 --prefix=/usr/local/Mesa-10.3.5


配置成功完成。


sudo make


报错:

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /usr/local/src/Mesa-10.3.5/bin/missing aclocal-1.14 -I m4

/usr/local/src/Mesa-10.3.5/bin/missing: line 81: aclocal-1.14: command not found

WARNING: 'aclocal-1.14' is missing on your system.

       You should only need it if you modified 'acinclude.m4' or

       'configure.ac' or m4 files included by 'configure.ac'.

       The 'aclocal' program is part of the GNU Automake package:

       <http://www.gnu.org/software/automake>

       It also requires GNU Autoconf, GNU m4 and Perl in order to run:

       <http://www.gnu.org/software/autoconf>

       <http://www.gnu.org/software/m4/>

       <http://www.perl.org/>

make: *** [aclocal.m4] Error 127


这个错误是由于时间戳改变导致的几个脚本文件需要重新生成。执行这条命令就行:


sudo autoreconf -ivf


如果不会或执行该命令时出错,请参阅这篇笔记:“Ubuntun 12.04 WARNING: 'aclocal-1.14' is missing on your system


解决上述问题后,重新配置、编译Mesa

sudo ./configure --disable-dri3 --prefix=/usr/local/Mesa-10.3.5

sudo make

成功完成。


sudo make install


安装完成!




其它相关错误:

之前按网上说法,试图这样安装Mesa,但是遇到错误,放弃。

sudo add-apt-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main'

wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -

--2014-12-28 20:12:00--  http://llvm.org/apt/llvm-snapshot.gpg.key

Resolving llvm.org (llvm.org)... 128.174.246.134

Connecting to llvm.org (llvm.org)|128.174.246.134|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 3145 (3.1K) [application/pgp-keys]

Saving to: `STDOUT'

100%[==================================================================>] 3,145       --.-K/s   in 0.006s  

2014-12-28 20:12:01 (495 KB/s) - written to stdout [3145/3145]

OK


sudo apt-get update


sudo apt-get install clang-3.4 clang-3.4-doc libclang-common-3.4-dev  libclang-3.4-dev libclang1-3.4 libclang1-3.4-dbg libllvm-3.4-ocaml-dev  libllvm3.4 libllvm3.4-dbg lldb-3.4 llvm-3.4 llvm-3.4-dev llvm-3.4-doc  llvm-3.4-examples llvm-3.4-runtime clang-modernize-3.4 clang-format-3.4  python-clang-3.4 lldb-3.4-dev

Reading package lists... Done

Building dependency tree     

Reading state information... Done

Package lldb-3.4 is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or is only available from another source


E: Package 'lldb-3.4' has no installation candidate

E: Unable to locate package lldb-3.4-dev

E: Couldn't find any package by regex 'lldb-3.4-dev'

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值