zoukankan      html  css  js  c++  java
  • 64位Linux编译C代码,crt1.o文件格式不对的问题

    今天在某台64位LInux下编译一个简单的hello world的C程序,报错:

    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o: could not read symbols: File in wrong format

    查看该文件的格式,竟然是32位的:

    # file /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o
    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.18, not stripped

    查看glibc-devel版本:

    # yum info glibc-devel
    Installed Packages
    Name        : glibc-devel
    Arch        : i686
    Version     : 2.12
    Release     : 1.149.el6_6.5
    Size        : 955 k
    Repo        : installed
    From repo   : 6ASU5-updates
    Summary     : Object files for development using standard C libraries.
    URL         : http://sources.redhat.com/glibc/
    License     : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
    Description : The glibc-devel package contains the object files necessary
                : for developing programs which use the standard C libraries (which are
                : used by nearly all programs).  If you are developing programs which
                : will use the standard C libraries, your system needs to have these
                : standard object files available in order to create the
                : executables.
                : 
                : Install glibc-devel if you are going to develop programs which will
                : use the standard C libraries.
    
    Available Packages
    Name        : glibc-devel
    Arch        : x86_64
    Version     : 2.12
    Release     : 1.149.el6_6.5
    Size        : 983 k
    Repo        : 6ASU5-updates
    Summary     : Object files for development using standard C libraries.
    URL         : http://sources.redhat.com/glibc/
    License     : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
    Description : The glibc-devel package contains the object files necessary
                : for developing programs which use the standard C libraries (which are
                : used by nearly all programs).  If you are developing programs which
                : will use the standard C libraries, your system needs to have these
                : standard object files available in order to create the
                : executables.
                : 
                : Install glibc-devel if you are going to develop programs which will
                : use the standard C libraries.



    在其他正常的64位机器上,发现是有/usr/lib64/crt1.o文件的,而问题机器却没有改文件,只有/usr/lib/crt1.o文件。


    询问牛人,牛人用了以下命令查看正常机器上的crt1.o文件:

    # rpm -qf /usr/lib64/crt1.o 
    glibc-devel-2.12-1.149.el6_6.5.x86_64

    原来是问题机器只安装了glibc-devel.i686,没有安装glibc-devel.x86_64,用yum安装即可:

    yum install glibc-devel.x86_64
    安装成功后,一切正常!!!




  • 相关阅读:
    移动端适配问题
    面试题
    c++学习之路
    es6特性
    ndoe安装依赖注意的问题
    如何阻止button默认的刷新页面操作
    npm 全局安装模块,出现XXX不是内部或外部命令解决方法
    .Net MVC系统源码与教学视频《资源分享系列6》
    Javascript书店课程设计《资源分享系列4》
    Python教程与源码《资源分享系列4》
  • 原文地址:https://www.cnblogs.com/gqtcgq/p/7247064.html
Copyright © 2011-2022 走看看