Linux 64位编译\链接32位程序

测试机器:Ubuntu14.04 64位

gcc编译32位程序,添加参数-m32:

$ gcc -c -fno-builtin -m32 TinyHelloWorld.c

ld链接32位代码,添加参数-melf_i386:

$ ld -static -melf_i386 -e nomain -o TinyHelloWorld TinyHelloWorld.o

时间: 2024-11-07 05:31:27

Linux 64位编译\链接32位程序的相关文章

[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.

SQL Server 2014 64位版本链接32位Oracle数据库

问题背景: 刚进入公司不久的BI新手,最近接部门的一个交接项目,需要在SQL Server上通过openquery来获取Oracle数据库的数据.各种配置,各种设置折腾了一周之久.在此,将自己的问题解决过程拿出来与大家分享.这里需要强调一点,网络资源虽然强大,但是每个人的问题一定是specific的,切忌生搬硬套. 系统配置:Windows server 2012 R2,64bit Intel Xeon 8 threads,48GB Memory: 预装软件:VS 2012 32bit,SQL

在64位主机上编译产生32位的目标代码

   今天又看CS630[1]的Chapter 15,发现里头的一个例程manydots.s无法正常编译. $ gcc manydots.s -o manydots /tmp/ccIvmRVT.o: In function `_start': (.text+0x0): multiple definition of `_start' /usr/lib/gcc/x86_64-linux-gnu/4.3.1/../../../../lib/crt1.o:(.text+0x0): first defin

64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考

最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的遇到了64位进程需要调用32位dll的问题.由于有一些32位dll没有源代码,无法重新编译为64位dll,所以只能想办法解决64位进程调用32位dll问题,这个问题让我很是挠头了几天. 相关资料:微软公司的官方网站针对这个问题描述如下:在64位的windows系统中,一个64位进程不能加载一个32位

Linux系统查看系统是32位还是64位方法总结

这篇博客是总结.归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客.本篇只是整理.梳理这方面的知识,方便自己忘记的时候随时查看. 方法1:getconf LONG_BIT 查看 如下例子所示: 32位Linux系统显示32, 64位Linux系统显示64.最简单.快捷的方法. [[email protected] ~]# getconf LONG_BIT 32 [[email protected] ~]# getconf LONG_BIT 64 方法2:uname命令

32位程序下调用64位函数——进程32位模式与64位模式切换

之前学习的32位进程中调用64位进程函数的知识整理一下,也就是32位模式与64位模式之间的切换. 相关博客:http://www.cnblogs.com/lanrenxinxin/p/4821152.html 这个博客中提到了github上的开源库,我在另一份开源项目中也看到了个库,可以切换32位至64位. 如果对这个功能具体实现比较感兴趣的朋友可以看看下面的内容. 我阅读了源码并进行了注释,算是对这个具体方法的分析和学习. 关键: 1.在x64下的进程,不管是32位或者是64位,实际上都映射了

64位主机64位oracle下装32位客户端ODAC(NFPACS版)

64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我们用到的是这个ODAC1120320Xcopy_32bit)http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html x64:http://www.oracle.com/technetwork/dat

判断是64位操作系统还是32位系统

1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProcess, __out PBOOL Wow64Process ); 参数 hProcess 进程句柄.该句柄必须具有PROCESS_QUERY_INFORMATION 或者 PROCESS_QUERY_LIMITED_INFORMATION 访问权限 Wow64Process 指向一个bool值, 如果该

64位ubuntu安装32位jdk

转自:http://blog.csdn.net/anladeyatou/article/details/8213334 ubuntu-11.10-desktop-amd64 jdk-6u23-linux-i586.bin 今天在64位的ubuntu下装32位JDK死活装不上 报错 ./jdk-6u7-linux-i586.bin: 480: ./install.sfx.2354: not foundFailed to extract the files. Please refer to the