共計(jì) 1051 個字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Fedora gcc 如何安裝動態(tài)連接,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我原來寫的程序在 gcc 4.2.1 中可以順利編譯,今天在 F9 中測試的時候就出錯了:test.cpp:38: error:‘memcpy’was not declared in this scope
Fedora gcc 安裝的官方有針對這種情況的說明:http://gcc.gnu.org/gcc-4.3/porting_to.html
Fedora gcc 安裝為了加快編譯的速度,減少了對頭文件的檢查,因此得手動包含所有相關(guān)的頭文件。這樣做可以確保程序員在寫代碼的時候意識到自己需要哪些頭文件,而不是交給編譯器去處理。不過同時也帶來了不少麻煩,許多以前寫的代碼都沒辦法在 Fedora gcc 4.3 中編譯通過。
我在 Fedora gcc 安裝(VM 虛擬機(jī)中)中使用 Fedora gcc 4.2.1 編譯一個動態(tài)鏈接庫時完全正常,但在 F9(AMD64 Dou)中使用 Fedora 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
不知道這是 Fedora gcc 4.3 的問題,還是雙核 64 系統(tǒng)的問題。只好再裝一個低版本的 Fedora gcc 安裝,下載了 Fedora gcc 4.2.4 的源碼包,沒想到編譯時又出錯了:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: 沒有那個文件或目錄
又 google 了半天終于找到了答案,缺少:glibc-devel-32bit,但是一直找不到和我系統(tǒng) glibc-devel(2.8)匹配的 glibc-devel-32bit, 只能找到一個 2.5 的 rpm 包,只好在安裝時使用了–nodeps 選項(xiàng)。
把新編譯的 Fedora gcc 安裝好,并且重新設(shè)置 PATH,再次編譯前面的程序,結(jié)果仍然一樣,看來確實(shí)是 64 位系統(tǒng)的問題了。
以上是“Fedora gcc 如何安裝動態(tài)連接”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!