溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Fedora gcc如何安裝動(dòng)態(tài)連接

發(fā)布時(shí)間:2021-10-28 11:28:30 來源:億速云 閱讀:116 作者:小新 欄目:系統(tǒng)運(yùn)維

小編給大家分享一下Fedora gcc如何安裝動(dòng)態(tài)連接,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我原來寫的程序在gcc 4.2.1中可以順利編譯,今天在F9中測(cè)試的時(shí)候就出錯(cuò)了:test.cpp:38: error: ‘memcpy’ was not declared in this scope

Fedora gcc安裝的官方有針對(duì)這種情況的說明:http://gcc.gnu.org/gcc-4.3/porting_to.html

Fedora gcc安裝為了加快編譯的速度,減少了對(duì)頭文件的檢查,因此得手動(dòng)包含所有相關(guān)的頭文件。這樣做可以確保程序員在寫代碼的時(shí)候意識(shí)到自己需要哪些頭文件,而不是交給編譯器去處理。不過同時(shí)也帶來了不少麻煩,許多以前寫的代碼都沒辦法在Fedora gcc 4.3中編譯通過。

我在Fedora gcc安裝(VM虛擬機(jī)中)中使用Fedora gcc 4.2.1編譯一個(gè)動(dòng)態(tài)鏈接庫(kù)時(shí)完全正常,但在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)的問題。只好再裝一個(gè)低版本的Fedora gcc安裝,下載了Fedora gcc 4.2.4的源碼包,沒想到編譯時(shí)又出錯(cuò)了:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: 沒有那個(gè)文件或目錄

又google了半天終于找到了答案,缺少:glibc-devel-32bit,但是一直找不到和我系統(tǒng)glibc-devel(2.8)匹配的glibc-devel-32bit,只能找到一個(gè)2.5的rpm包,只好在安裝時(shí)使用了–nodeps選項(xiàng)。

把新編譯的Fedora gcc安裝好,并且重新設(shè)置PATH,再次編譯前面的程序,結(jié)果仍然一樣,看來確實(shí)是64位系統(tǒng)的問題了。

以上是“Fedora gcc如何安裝動(dòng)態(tài)連接”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI