zoukankan      html  css  js  c++  java
  • Fedora9中的gcc



    作者:可可熊的窝  出自: http://www.linuxdiyf.com

    Fedora9中默许装置的gcc版本是4.3,(Ubuntu8.04还只是4.2.1)因为gcc自己的厘革,在Fedora9中源码编译一些软件的时分会犯错,譬喻eva。我本来写的步调在gcc 4.2.1中可以顺遂编译,今天在F9中测试的时分就犯错了:

    test.cpp:38: error: ‘memcpy’ was not declared in this scope

    gcc的官方有针对这种景遇的阐明');:http://gcc.gnu.org/gcc-4.3/porting_to.html

    gcc 为了加快编译的速度,增添了仇人文件的反省,是以得手动包括所有关系的头文件。如许做可以确保步调员在写代码的时分体会到自己需要哪些头文件,而不是交给编译器去向理。不外同时也带来了不少贫穷,很多从前写的代码都没步履在gcc 4.3中编译颠末。

    我在f8(VM假造机中)中使用gcc 4.2.1编译一个静态链接库时完全正常,但在F9(AMD64 Dou)中使用gcc 4.3编译就无法颠开头提醒:

    /usr/bin/ld: test.o : relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC

    test.o: could not read symbols: Bad value

    不知道这是gcc 4.3的结果,仍是双核64体系的结果。只好再装一个低版本的gcc,下载了gcc 4.2.4的源码包,没想到编译时又犯错了:

    /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: 没有那个文件或目录

    又google了半天终于找到了答案,短少:glibc-devel-32bit,然则不停找不到和我体系glibc-devel(2.8)立室的glibc-devel-32bit,只能找到一个2.5的rpm包,只幸而装置时使用了–nodeps选项。

    把新编译的gcc装置好,并且重新设置PATH,再次编译前面的步调,效果模仿照旧一样,看来简直是64位体系的结果了。




    版权声明: 原创作品,应允转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。不然将追究规则责任。

  • 相关阅读:
    Manacher算法
    [SCOI2010]生成字符串
    [HNOI2008]GT考试
    矩阵乘法
    关于主席树
    Spring 书籍
    Spark书籍
    TimeMeasure
    Dynamic login
    Image quality evaluation
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1974979.html
Copyright © 2011-2022 走看看