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位體系的結果了。
版權聲明: 原創作品,應允轉載,轉載時請務必以超鏈接方式標明文章 原始出處 、作者信息和本聲明。不然將追究規則責任。
轉載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1974979.html
總結
以上是生活随笔為你收集整理的Fedora9中的gcc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mozilla Prism v0.9 F
- 下一篇: Oracle数据库安然计谋分析(二)