[DEV] 在linux 64 系统下面进行32位程序开发

因为调试的需要,我需要在64位的机器下编译32位的目标文件。

运行make 命令的时候,出现以下错误

fatal error: gnu/stubs-32.h: No such file or directory

意识到,我这是一台64位的系统,还未安装相应的开发包。我们缺少32位应用程序所需要的库及相及的头文件

yum install glibc-devel.i686

yum install libstdc++-devel.i686

安装完上面两个包,重新运行make. OK,Done.

时间: 2024-10-26 10:17:40

[DEV] 在linux 64 系统下面进行32位程序开发的相关文章

64位系统上运行32位程序能否申请到8G内存?

申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位的寻址数(指针占4个字节),因此申请8G的空间是没啥意义的,而且一般系统都会为每个进程设置一些资源限制,对于32位程序其能申请的内存量也远远小于4G可以看一下下面这个表操作系统内部数据结构限制对比 IT168评测中心 分组 限制 64位Windows限制 类别 单个进程虚拟空间 4GB 16TB 用

win764位系统上让32位程序能申请到4GB内存方法

win764位系统上让32位程序能申请到4GB内存方法. 2016年09月18日 18:36:26 阅读数:1550 最近测试一个32位程序总是在1.2G左右内存时崩溃,怀疑是内存申请失败,本身32位程序只能申请到2GB内存,经过在网上找的各种方法和测试,如下方法可行,能申请到4GB内存. 1.管理员模式下运行CMD,输入:BCDEdit /set PAE forceenable Windows 这里的BCDEdit是关于命令行的启动配置编辑器.使用上面的命令,你能启用物理地址扩展(PAE),让

关于32位程序在64位系统下运行中需要注意的重定向问题(有图,很清楚)

0x00 前言 最近学习了[email protected]的文章<Persistence Architecture Matters>,恰巧解决了我之前遇到过的一个问题,理清了文件和注册表重定向中需要注意的细节 大家在学习的过程中难免也会碰到,所以在此分享一下. <Persistence Architecture Matters>的链接:https://labs.mwrinfosecurity.com/blog/persistence-architecture-matters/ 0

关于32位程序的内存

在上大学的时候老师提到过这么一个知识点 32位程序的寻址能力是2^32,也就是4G.对于32位程序只能申请到4G的内存.而且这4G内存中,在windows下有2G,linux下有1G是保留给内核态使用,用户态无法访问.故只能分配2G.3G的内存使用. 前几天服务器报警了,无法负载更多的用户进行访问.赶紧看了下程序的自我评分,显示内存占用达到3.6G,无法继续工作. WTF?3.6G?超过linux下32位程序只能使用3G内存的限制? 这个时候怀疑是评分程序写错了,赶紧用TOP看了下内存,也达到了

Linux 64系统装32位JDK解决办法

我在linux系统中安装软件:/lib/ld-linux.so.2: bad ELF interpreter怎么解决,这里我分析有两种,一种是常用的安装因为系统软件位数问题,如:64位系统中安装了32位程序了,另一种是交叉编译没有那个文件或目录,下面我们一起来看解决问题的方法. 问题一,64位系统中安装了32位程序解决办法 是因为64位系统中安装了32位程序 解决方法:  代码如下 复制代码 yum install glibc.i686 问题二,解决交叉编译环境错误 # arm-linux-gc

在64位linux上编译32位程序

ld指令有一个选项:--oformat output_format,用于指定输出文件的格式.输入文件./kernel/kernel.o等是elf32格式,当前系统是64位,而ld默认生成的文件格式是elf64-x86-64:因此会出现"ld: warning: i386 architecture of input file `./kernel/kernel.o' is incompatible with i386:x86-64 output"这样的提示.之前,将系统从三墩转移到我自己的

C# 32位程序在64位系统下注册表操作

在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64位程序冲突 相关资料请查看32位程序在64位系统下运行的重定向机制 下面是以获取操作系统安装密匙KEY的案例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using

32位程序在64位系统上获取系统安装时间(要使用KEY_WOW64_64KEY标记)

众所周知,取系统的安装时间可取注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的子项InstallDate,此值是个DWORD类型的UnixStamp.  但是在64位系统上有所不同(仅测试了win7.win8),默认情况下32程序在64位机器上访问的是下面这个地址HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

64位 Windows 8/7 系统下的 32位PLSQL 联接 64 位 Oracle 11g

64位 Windows 8/7 系统下的 32位PL/SQL 联接 64 位 Oracle 11g 说明:安装完后Oracle的 oci.dll 是64位的,而32位应用程序 PL/SQL Developer 无法加载 解决方案 步骤一:下载Instant Client for Microsoft Windows (32-bit) 包  地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html 步骤二:解压文件 步骤三:配置系