热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Fedora9中的GCC

Fedora9中默认安装的GCC版本是4.3,(Ubuntu8.04还只是4.2.1)由于GCC本身的变化,在Fedora9中源码编译一些软件的时候会出错,比如EVA。我原来写的程序在GCC4.2.1中可以顺利编译,今天在Fedora9中测试的时候就出错了:test.cpp:38:error:‘memcpy’wasnotdeclaredinthisscopeGC

Fedora 9中默认安装的GCC版本是4.3,(Ubuntu 8.04还只是4.2.1)由于GCC本身的变化,在Fedora 9中源码编译一些软件的时候会出错,比如EVA。我原来写的程序在GCC 4.2.1中可以顺利编译,今天在Fedora 9中测试的时候就出错了:

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位系统的问题了。(作者:可可熊的窝)


推荐阅读
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
author-avatar
八卦男1002_426
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有