64位ubuntu 编译32位?ubuntu安装32位库
大家好,关于64位ubuntu 编译32位很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于ubuntu安装32位库的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
ubuntu64位怎么编译32位qt库
64位可以编32位的程序出来,在各种FLAGS中增加-m32编出来的就是32位程序,连接时自然是找32位的共享库
这个要看发行版对32位支持的实现,比如gentoo下如果开abi支持双架构那很可能悲剧,因为有些包还没跟上,如果用binary的32位库又会因为版本不同出现莫名其妙的问题,比如fontconfig的坑。
我在64位编32位程序都是使用chroot的方法,这样就可以把32位的头文件库什么的全放在某个地方。我用的是ubuntu,32位库和64位库位置不一样,一般可以直接安装32位的库,如果遇到某些比较特殊的库,一般都可以通过重新编译增加rpath解决,如果没源码也可以用patchelf直接给elf上rpath。
如果您认可我的答案,请采纳。
您的采纳,是我答题的动力,O(∩_∩)O谢谢!!
如何在64位Linux上编译安装32位wine
以Ubuntu为例说明
一、安装安装lxc
1、安装lxc
sudo apt-get install lxc lxc-templates
2、现在创建一个32位的容器,并把目录绑定到容器:
sudo lxc-create-t ubuntu-n my32bitbox----bindhome$LOGNAME-a i386
3、然后启动容器;在控制台输入用户名和密码。
sudo lxc-start-n my32bitbox
4、在/etc/apt/sources.list中添加内容
sudo sh-c"sed s/deb/deb-src//etc/apt/sources.list>>/etc/apt/sources.list"
5、安装先决条件
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get build-dep wine#如果失败使用 sh install-wine-deps.sh cd$HOME mkdir wine32 cd wine32~/wine-git/configure make-j4
6、关闭容器
sudo shutdown-h now
二、安装chroot Method
1、安装
sudo apt-get install schroot debootstrap
2、创建配置文件
sudo editor/etc/schroot/chroot.d/precise_i386.conf
3、添加内容
[precise_i386] description=Ubuntu Precise personality=linux32 directory=/srv/chroot/precise_i386 root-users=your_username type=directory users=your_username
4、创建的Ubuntu的chroot环境
sudo mkdir-p/srv/chroot/precise_i386
sudo debootstrap--variant=buildd--arch=i386 precise/srv/chroot/precise_i386
5、使在chroot内apt-get的工作:
sudo cp/etc/apt/sources.list/srv/chroot/precise_i386/etc/apt/
6、进入chroot:
schroot-c precise_i386-u root
7、得到基础包
apt-get update apt-get install ubuntu-minimal
sudo apt-get install software-properties-common
8、安装构建依赖关系:
apt-get build-dep wine
如果报错:E: You must put some'source' URIs in your sources.list
则执行
add-apt-repository ppa:ubuntu-wine/ppa apt-get update
9、下载Wine源
apt-get install git git clone git://source.winehq.org/git/wine
10、编译
cd wine
./configure make
11、运行
export DISPLAY=:0
./wine notepad
12、在chroot外部执行
exit
sudo apt-get install wine
exit
cd wine
./wine notepad
三、手动连接库的方法
1、执行下面代码
sudo apt-add-repository ppa:ehoover/compholio
sudo apt-get update
sudo apt-get install ia32-libs-dev
2、或者设置符号连接
cd/usr/lib/i386-linux-gnu
sudo ln-s libfreetype.so.6 libfreetype.so
sudo ln-s libX11.so.6 libX11.so
sudo ln-s libXau.so.6 libXau.so
sudo ln-s libXcursor.so.1 libXcursor.so
sudo ln-s libXi.so.6 libXi.so
sudo ln-s libXext.so.6 libXext.so
sudo ln-s libXxf86vm.so.1 libXxf86vm.so
sudo ln-s libXrandr.so.2 libXrandr.so
sudo ln-s libXrender.so.1 libXrender.so
sudo ln-s libXinerama.so.1 libXinerama.so
sudo ln-s libXcomposite.so.1 libXcomposite.so
sudo ln-s libGLU.so.1 libGLU.so
sudo ln-s libOSMesa.so.6 libOSMesa.so
sudo ln-s libgnutls.so.26 libgnutls.so
sudo ln-s libsane.so.1 libsane.so
sudo ln-s libv4l1.so.0 libv4l1.so
sudo ln-s libv4l2.so.0 libv4l2.so
sudo ln-s liblcms.so.[0-9] liblcms.so
sudo ln-s libcapi20.so.3 libcapi20.so
sudo ln-s libcups.so.2 libcups.so
sudo ln-s libfontconfig.so.1 libfontconfig.so
sudo ln-s libgsm.so.1 libgsm.so
sudo ln-s libtiff.so.[0-9] libtiff.so
sudo ln-s libmpg123.so.0 libmpg123.so
sudo ln-s libodbc.so.1 libodbc.so
sudo ln-s libopenal.so.1 libopenal.so
sudo ln-s libldap-2.4.so.2 libldap.so
sudo ln-s libldap_r-2.4.so.2 libldap_r.so
sudo ln-s liblber-2.4.so.2 liblber.so
sudo ln-s libxml2.so.2 libxml2.so
sudo ln-s libxslt.so.1 libxslt.so
sudo ln-s libssl.so.0.9.8 libssl.so
sudo ln-s libcrypto.so.0.9.8 libcrypto.so
sudo ln-s libjpeg.so.8 libjpeg.so
sudo ln-s mesa/libGL.so libGL.so
cd/usr/lib/i386-linux-gnu/mesa
sudo ln-s libGL.so.1 libGL.so
cd/lib/i386-linux-gnu
sudo ln-s libdbus-1.so.3 libdbus-1.so
sudo ln-s libpng12.so.0 libpng12.so
sudo ln-s libncurses.so.5 libncurses.so
3、可能还需要的32位libraries
sudo apt-get install libosmesa6:i386 libosmesa-dev libjpeg-turbo8-dev:i386
64位linux系统编译程序时可以链接32位的库吗
64位可以编32位的程序出来,在各种FLAGS中增加-m32编出来的就是32位程序,连接时自然是找32位的共享库
这个要看发行版对32位支持的实现,比如gentoo下如果开abi支持双架构那很可能悲剧,因为有些包还没跟上,如果用binary的32位库又会因为版本不同出现莫名其妙的问题,比如fontconfig的坑。
我在64位编32位程序都是使用chroot的方法,这样就可以把32位的头文件库什么的全放在某个地方。我用的是ubuntu,32位库和64位库位置不一样,一般可以直接安装32位的库,如果遇到某些比较特殊的库,一般都可以通过重新编译增加rpath解决,如果没源码也可以用patchelf直接给elf上rpath。