CentOS 7 构造GCC 4.8.2 32位编译环境

centos 7 构造gcc 32位编译环境

1引言

1.1背景

学习新的 C++ 2011和C11标准。

1.2使用软件

CentOS 7(Linux version 3.10.0-123.el7.x86_64)

gcc version 4.8.2 20140120 (Red Hat 4.8.2-16)

1.3本次配置

32位gcc 开发环境。

因为 RHEL 7(红帽企业版 linux 7)已经不再提供32位版本,短期内 CentOS 7也不会提供32位的版本,故为了考虑升级和研究可用的操作系统,对开放环境进行配置。

64位版本的CentOS 7目前只提供了GCC 4.8.2 64位版本,默认不安装 GLIBC(version 2.17) 32位版本。

1.4目的

构造CentOs 64位版本下的 GCC 4.8.2 支持编译和运行32位程序,新标准编译环境。

2安装步骤

2.1安装GLIBC(32位)

安装 GLIBC 32位版本。

yum --disablerepo=* --enablerepo=c6-media install glibc-2.17-55.el7.i686

2.2安装 gcc 4.8.2

安装完整的 gcc 4.8.2。

2.3拷贝运行库libgcc_s.so

假设 GCC 4.8.2 安装到/usr/local/gcc-4.8.2。需要把32位版本的libgcc_s.so拷贝到32位库

/lib 下面。

cp /usr/local/gcc-4.8.2/lib/libgcc* /lib

2.4验证安装(C11)

[[email protected] src]# cat aa.c

#include <stdio.h>

#include <pthread.h>

//gcc -m32 -g -std=c11 aa.c -o aa -lpthread;./aa

void * f(void *data)

{

//char buff[10];

//char * p = 0;

//memcpy(buff,"ddddddddddddddd",20);

//memcpy(p,"sss",10);

//p[0] = ‘d‘;

printf("centos 7,gcc 4.8.2 C11 test ok.\n");

return 0;

}

int main(int argc,char * argv[])

{

pthread_t t;

pthread_create(&t,0,f,0);

pthread_join(t,0);

return 0;

}

gcc -m32 -g -std=c11 aa.c -o aa -lpthread;./aa;ldd aa

centos 7,gcc 4.8.2 C11 test ok.

linux-gate.so.1 =>  (0xf77bb000)

libpthread.so.0 => /lib/libpthread.so.0 (0xf7799000)

libc.so.6 => /lib/libc.so.6 (0xf75db000)

/lib/ld-linux.so.2 (0xf77bc000)

2.5验证安装(C++ 2011)

[[email protected] src]# cat aa.cpp

#include <stdio.h>

#include <thread>

#include <functional>

#include <algorithm>

using namespace std::placeholders;

using namespace std;

//g++ -std=c++11 -g aa.cpp -o aa -lpthread;./aa

void * f(void *data)

{

printf("centos 7,gcc 4.8.2 c++ 2011 test ok.\n");

return 0;

}

int main(int argc,char * argv[])

{

void *p;

//std::function<void * (void *)> pf = std::bind(f,nullptr);

auto pf = std::bind(f,nullptr);

std::thread t(pf);

//t.start();

t.join();

return 0;

}

[[email protected] src]# g++ -std=c++11 -g aa.cpp -o aa -lpthread;./aa;ldd aa

centos 7,gcc 4.8.2 c++ 2011 test ok.

linux-vdso.so.1 =>  (0x00007fffe7d6c000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd40dd34000)

libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fd40da2d000)

libm.so.6 => /lib64/libm.so.6 (0x00007fd40d72a000)

libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd40d514000)

libc.so.6 => /lib64/libc.so.6 (0x00007fd40d153000)

/lib64/ld-linux-x86-64.so.2 (0x00007fd40df58000)

CentOS 7 构造GCC 4.8.2 32位编译环境

时间: 2024-11-06 18:37:32

CentOS 7 构造GCC 4.8.2 32位编译环境的相关文章

Debian 8.5配置mips 32位编译环境

1. 首先添加toolchain环境变量 每一个开发平台所需要用到的交叉编译链接工具不一样,添加到系统 /etc/profile即可 su进入root,执行 vi /etc/profile 在最后添加:export PATH=$PATH:/usr/.../bin/ 添加完成后执行:source /etc/profile 通过命令:echo /etc/profile查看是否添加成功 2. 添加环境变量OK后,安装gcc gedit /etc/apt/sources.list 用"#"注释

centos 6.5 32位 编译安装Mysql

groupadd mysql #添加mysql组 useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统 mkdir -p /data/mysql #创建MySQL数据库存放目 chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限 mkdir -p /usr/local/mysql #创建MySQL安装目录 cd /opt tar zxvf mysql-5.5

vc判断是32位编译还是64位编译判断是debug编译还是release编译

来源:http://www.greensoftcode.net/   发布日期:2014-03-28      点击次数:471 发布者IP:119.119.236.22 1.判断是debug编译还是release编译.如果_DEBUG定义了表示是debug编译,否则是release编译. 2.判断是32位编译还是64位编译.在 Win32 配置下,_WIN32 有定义,_WIN64 没有定义.在 x64 配置下,两者都有定义.即在 VC 下,_WIN32 一定有定义.因此,WIN32/_WIN

CentOS 5 上使用yum同时安装32位和64位包的解决方法

在centos上使用yum在线安装软件包的时候,有时候会同时安装32位和64位的包.并且在update的时候也会更新双份. 其实让yum只安装64位的包,只要在 /etc/yum.conf 中加个 exclude 选项: [main] cachedir=/var/cache/yum keepcache=0 plugins=1 ...... exclude=*.i?86 exclude 选项支持正则表达式,*.i?86可以用来过滤掉i386,i686等32bit包. 如果要删除已经安装的32bit

CentOS RedHat YUM 源扩展补充(32位、64位均有)

一般情况下强烈建议在CentOS6下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&make install呢. 为centos配置rpmforge及epel源.centos官方的源其实也够用,不过像php的一些扩展如php-mcrypt在官方源中并没有. rpmforge源可以在 http://pkgs.repoforge.org/rpmforge-release/中下载安装,名

64位 Windows 用了 32位编译平台 编译不过 MySQL API

发生在一周前的事情了,当时想感受下 MySQL C API ,就写了几个小例子.虽然是在 Windows(我的工作电脑是 64位 Windows) 上面,但是不想用 VS ,只想用文本软件写好代码后用 cl 编译,然后用 link 链接.就在我写完最简单的一个例子后,死活都编译不过去.代码如下: #include <my_global.h> #include <mysql.h> int main(int argc, char **argv) { printf("MySQL

64位Win2003系统让IIS运行在32位的环境下

安装了WIN2003系统64位的,IIS也是运行在64位下面,可是要使用伪静态,又找不到64位的伪静态组件,所以只好让IIS 运行在32位下面了,方法如下: cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 如果又想恢复或者修改成64位下面运行IIS,就执行下面的命令: cscript %systemdrive%\inetpub\adminscript

cocos2dx-3.0(1)------win7 32位android环境搭建

參照链接http://blog.csdn.net/wonengxing/article/details/23601359 ----我的生活,我的点点滴滴!! 一. Android工具安装 1. 安装JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 因为这是官网,假设上不去或者下载慢, 能够自行百度或google下载,我反正是下载的最新的,管他了 假设你c盘大,那就默认安装吧,我因为c盘不够

window安装gcc、g++、make等编译环境

1. MinGW官网下载:http://www.mingw.org        点击右上角Downloads 点击下载 mingw-get-setup.exe 2. 百度网盘(2019年4月从官网下载的):      链接:https://pan.baidu.com/s/10_OpGlqu2nBG6OI9Y7iFJA      提取码:3z9t 安装 mingw-get-setup.exe直接默认安装就好了,如果不想安装在C盘,修改的安装路径最好不要有空格(我自己的安装路径有空格好像也没遇到什