当前位置:首页 » 编程软件 » ubuntu64位编译32位

ubuntu64位编译32位

发布时间: 2022-06-13 09:51:25

‘壹’ 64位UBUNTU 下 如何用GCC 编译出32位程序 求前辈指点

目测是32位的搜索路径下没有sys/cdefs.h
一般64位系统最好不要安装32位库的-dev,经常有冲突,强行安装会破坏64位环境,头文件并不像共享库分得那么完美。
我觉得比较好的做法是,重新把某一个文件夹当成rootfs,在里面安装各种32位的库和库-dev,然后给gcc传递参数"--sysroot=路径"就可以让gcc重新选取那个文件夹为rootfs,而不再认为/为rootfs。其实这样就变成交叉编译了。也可以在这个rootfs中安装32位的必要软件包如bash,gcc,coreutils等等,然后chroot进去就变成host编译了。其实有个比较简单的方法,就是虚拟机下安一个32位的ubuntu,然后装好各种软件包,然后直接对/打包,再拿出来解压就是rootfs了,后面最多就是缺啥安啥,工作量比较小。当然如果你不在意编译速度,直接虚拟机下编最简单

‘贰’ 怎样在64位的Ubuntu中使用32位的系统库或是

有个已经被淘汰的库可以使用 ia32-libs,同时我也找到了一个新的库可在64位上使用lib32z1-dev;你只要在你的系统中安装上述两个库便可以在64位的系统中使用32位的库
linux13.04的发行版安装可能有点复杂,但是我相信大多数已经不再使用这个发行版了,很多的人都是14.04或是16.04的版本,所以使用一下命令即可:
sudo apt install lib32z1-dev and sudo apt install ia32-libs

‘叁’ linux64位机器编译32位程序出现错误。

32 和 64 是完全两个不同的系统。Linux 他们的兼容,完全是基于内核的双模式切换功能,但是因为是基于内核的。所以 32 和 64 的系统函数库就还是没关系。
那么,你编译和运行 32 位程序,就需要 64 位的函数库接口支撑。同样 64 位程序,也需要 64 位的函数库提供支撑。

你这个问题,教程只让你装了最基本的编译器环境,但是函数支撑环境全都没有装,肯定是还会提示找不到需要的函数库的。
另外,就算你这个命令装了需要的函数库,也肯定只是装了 64 位的函数库,32 位库也没有装。那么编译 32 位程序也会出现找不到 32 位函数库的问题的。

你这个问题,我建议你学习两部分:
1、Linux 的依赖关系;
2、Linux 的 mutilib 相关实现。

我建议,编译 32 的程序请用纯 32 位系统。64 位系统只编译 64 位的程序。64 位系统只可以运行 32 位程序,不要用来编译。Linux 里面随便找个程序,就会依赖很多的函数库,这对于编译器调用来说,会很乱的。
如果真的没有空闲机器去单独跑 32 位系统了,我建议要么是 chroot 环境,要么是用交叉编译。不过注意这两种方式还是需要设置。

‘肆’ 64位linux下面的GCC如何编译出一个32位可执行程序

编译64位程序,不一定要编译机器是64位的,但是32位机器默认安装的gcc编译环境还是不能用来编译64位程序。
编译64位程序,需要加上-m64编译器参数,默认安装的gcc已经支持该参数,但是缺少64位机器指令相关的文件,所以不能编译,会出现下面的错误
In file included from /usr/include/features.h:378,
from /usr/include/assert.h:37,
from ../../../include/tinyxml/tinystr.h:42,
from ../../../src/tinyxml/tinystr.cpp:32:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 没有那个文件或目录
这时候需要安装 gcc所有支持文件 sudo apt-get install gcc-multilib
将会安装下列额外的软件包:
cpp-4.4 g++-4.4 gcc-4.4 gcc-4.4-base gcc-4.4-multilib lib64gcc1 lib64gomp1 libc6-amd64 libc6-dev-amd64 libgcc1 libgomp1
libstdc++6 libstdc++6-4.4-dev
建议安装的软件包:
gcc-4.4-locales g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg libmudflap0-4.4-dev libgcc1-dbg libgomp1-dbg libmudflap0-dbg
libcloog-ppl0 libppl-c2 libppl7 lib64mudflap0 libstdc++6-4.4-doc
下列【新】软件包将被安装:
gcc-4.4-multilib gcc-multilib lib64gcc1 lib64gomp1 libc6-amd64 libc6-dev-amd64
下列软件包将被升级:
1. 编译连接成 32 位的 windows xp 32位系统下可运行的程序;
2. 编译连接成 64 位的 windows vista 64位系统下可运行的程序;
3. 编译连接成 32 位的 ubuntu 32位系统下可运行的程序;
4. 编译连接成 64 位的 ubuntu 64位系统下可运行的程序。
老师出的题,不太懂怎么实现

‘伍’ 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谢谢!!

‘陆’ ubuntu64位能运行32位的软件么

关于vim之类开源的软件,不同系统编译的版本都有,所以这些软件完全没有问题。
其实大多数linux软件都是开源的,即使没有64位安装包,你自己也可以用gcc编译一个。
至于极少数的32位私有软件,可以安装32位支持库,比如ia32-libs-multiarch。
最好搜索一下sudo apt-cache search ia32
---------------------
这些担心都是没有必要的,win7 64不是也可以运行32位软件吗。
而linux关于64位系统的问题,更早就已经解决了。

‘柒’ ubuntu64位怎么安装32位qt

如果是64位编译安装32位.有点麻烦,

但是可以拿32位机子编译好的,拿过来,然后在QT CREATE里面设置一下就可以使用了(记得安装32位兼容包,可以网络)

‘捌’ 64位的电脑装32位的ubuntu,gcc编译结果和正常32位的电脑会不会不一样

不会啊,编译结果是正常32位的

‘玖’ 64位ubuntu 14.04装什么依赖才能运行32位程序

太多人问这个了。

这是从ubuntu中文论坛上粘过来的Poloshiao大神的回复:
自 Ubuntu 13.10 及 以后版本 已经是 multiarch 不需要再安装 ia32-libs 直接安装 32 bit 的套件即可
如果安装过程 还是出现缺少 ia32-libs 的错误讯息
需要到 Ubuntu 13.04 套件库 下载
ia32-libs 及 ia32-libs-multiarch 的 deb 档案下来安装
因为 Ubuntu 13.10 及 14.04 套件库裏 没有 ia32-libs 及 ia32-libs-multiarch 的套件

‘拾’ 64位ubuntu可不可以运行32位系统的软件

默认不行,会提示架构不支持。要使用32位deb包可以先get ia32-libs*,安装的时候加入 --force-architecture参数。
如果是源代码编译不受影响。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:376
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:941
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371