`
SmartGeek
  • 浏览: 70799 次
  • 来自: 南京
社区版块
存档分类

64位 Linux 编译32位应用程序

阅读更多
1. Redhat 系 Linux

以 Scientific Linux 6.2 为例:
Scientific Linux 与 Centos 都是 Redhat Linux 的民间再发行版。因为它们既有Redhat的稳定,又可以及时免费更新Bugfix,所以比较流行。其中Scientific Linux由费米实验室维护,公司内的编译服务器都安装此版本。

uname -r 结果是:2.6.32-220.17.1.e16.x86_64, 确认是64位环境。

先检查编译环境是否完备。确认下"Development tools", "Compatibility libraries" 这两个组件有没有安装:
$ yum grouplist "Development tools" "Compatibility libraries"

没装则装上:
$ yum groupinstall "Development tools"
$ yum groupinstall "Compatibility libraries"

另外还需要安装 glibc-devel 的32位版
$ yum install glibc-devel.i686

下面写段代码测试下:
/* test.c */
#include <stdio.h>
int main()
{
    printf("sizeof long is %d\n", sizeof(long));
    return 0;
}

64位编译执行结果:
$ gcc test.c
$ file a.out
a.out: ELF 64-bit LSB executable ...
$ ./a.out
sizeof long is 8

32位编译执行结果 (在64位系统编译32位程序需要给 GCC 加 -m32 参数):
$ gcc -m32 test.c
$ file a.out
a.out: ELF 32-bit LSB executable ...
$ ./a.out
sizeof long is 4


2. Debian 系 Linux

以 ubuntu 12.04 为例:

uname -p 结果:x86-64, 确认是64位环境。
ubuntu 中需要安装以下包:
$ apt-get install build-essential module-assistant
$ apt-get install gcc-multilib g++-multilib

测试过程同上。
分享到:
评论

相关推荐

    linux驱动程序编译以及应用程序编译

    linux驱动程序,应用程序编译过程,简洁实用。

    如何在Linux下用gcc编译c程序

    Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。

    linux下GCC编译C程序

    它已成为许多集成开发工具的基础,被世界各地的发行商应用在Linux和其他操作系统之上。 GCC已不再是主要针对GNU项目自身的软件的小型C语言编译器了。如今,它已支持了许多不同的语言,包括C、C++、Ada、Fortran、...

    58-Make与Makefile在Linux内核体系编译中的应用

    58-Make与Makefile在Linux内核体系编译中的应用

    Linux移植及驱动应用程序课程设计任务书.docx

    本课题任务是移植安装Linux操作系统,开发LED或蜂鸣器报警应用设备的驱动程序及其应用程序。要求完成的任务和实现的功能有: (1) 以FS4412开发板为开发平台,移植Linux操作系统,含引导程序、Linux操作系统内核、...

    嵌入式Linux内核编译

    我们所谓的 ARM 交叉编译环境就是要在开发主机上创建一个用于编译将在表1所示的硬件环境中运行的内核和应用程序的构建环境。这套 ARM 交叉开发环境由一套用于编译、汇编和链接内核及应用程序的组件组成。 这些组件...

    GO编译开发环境安装包-linux官方版

    GO编译开发环境安装包-linux官方版,Go语言专门针对多处理器系统应用程序的编程进行了优化 Go语言官网: https://golang.org

    linux vxworks工程跨平台编译系统

    linux vxworks工程跨平台编译系统

    Linux实验 六 GCC程序编译

    编写一个应用程序,使用gcc进行编译,并分别使用-o,-g,-static,-O2等选项,了解这些选项的作用。 2)、实验器材: 软件: 安装了ubuntu的VMware虚拟机。 硬件: PC机一台。 3)、背景知识:

    LINUX下编译与调试

    LINUX下编译与调试 LINUX下编译与调试 1 1. gcc/g++编译器 1 2. makefile使用 2 2.1. 基本过程处理 2 2.2. 特殊处理与伪目标 3 2.3. 变量、函数与规则 5 3. 程序调试 8 3.1. gdb常用命令 8 3.2. gdb 应用举例 9 3.3...

    arm-linux-gcc编译gtk程序

    网上大部分arm-linnux-gcc编译gtk,其实介绍的是directfb+gtk移植。我提供的是gtk 应用程序的arm-linux-gcc编译方法。

    嵌入式Linux应用程序开发标准教程(第2版全)

    《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。...

    嵌入式Linux NFS方式下应用程序的实现

    嵌入式Linux下的应用程序的开发,与Windows下应用程序的开发大不相同。在Windows环境中,可以直接在PC上使用各种集成编译开发工具,完成程序编辑、编译和运行,而在嵌入式Linux环境下,缺少简单、高效的开发工具,...

    gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz

    可用于交叉编译64-bit Armv8 Cortex-A, little-endian目标中的裸机程序、u-boot、Linux kernel、filesystem和App应用程序。gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar交叉编译器必须安装在64为主机...

    嵌入式Linux下C语言编程应用程序开发详解【完整篇】 2

    注:总共12章,详细介绍了嵌入式Linux下的C语言编程应用,内含多种源代码,建议Linux下C语言编程的初学者下载,分享了……

    电信设备-一种linux保存应用程序编译信息的方法.zip

    电信设备-一种linux保存应用程序编译信息的方法.zip

    Linux环境编程 实验3.doc

    实验三:MYSQL数据库与Linux程序开发(综合性、4学时) 本项实验综合了MYSQL与Linux程序开发、多模块软件编译与链接过程等章节的知识点。根据实验指导书的要求和步骤,完成相应的程序开发及多模块软件编译与链接过程...

    嵌入式linux控制LED灯的驱动程序源代码和Makefile编译驱动生成ko文件源代码和应用程序源代码

    嵌入式linux控制LED灯的驱动程序源代码和Makefile编译驱动生成ko文件源代码和应用程序源代码

    Linux操作系统的内核编译内幕详解

     Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。 全世界任何一个软件工程师都可以将自己认为...

    Linux程序设计参考书-六部

    ioctl第6章Linux进程间通信第7章声音编程第8章字符单元图形第9章I/O端口编程第10章把应用程序移植到Linux上附录以字母顺序排列的系统调用第四部Linux内核概念系统结构第1章系统结构第2章子系统的系统结构第3章结论...

Global site tag (gtag.js) - Google Analytics