linux核心編譯 c如何生成 o檔案

2025-07-15 18:00:10 字數 2291 閱讀 5229

1樓:網友

gcc -wall -o

或者在makefile中寫下:

gcc -wall -o

然後make,注意:下面的空格必須用tab鍵。

2樓:網友

如果有makefile, 那就直接在命令列make, 就可生成o檔案及ko, so檔案等 。

c語言**怎麼編譯成.o檔案?再怎麼變成.exe檔案?

3樓:風若遠去何人留

簡單的說,由編譯器做一些工作,把c語言轉換成機器可以識別的機器語言(.exe)

一般把。c到。o稱之為編譯,.o到。exe稱之為連線編譯+連線整個過程的統稱也叫編譯。

具體的過程,你可以認為是翻譯,如果真的很感興趣,學一下編譯原理也可以。

我想我在這說一堆詞法分析 語法分析 語義分析什麼的 估計你也不會感興趣的。

4樓:趙韋華和

linux下gcc -c -o 生成。o檔案。

gcc -o wen 就變成。exe檔案。

make modules編譯驅動模組,只生成.o檔案沒有.ko檔案...這是怎麼回事???

5樓:目木十三

和指的是編譯出來的原始檔有兩個分別是和。

6樓:網友

看看你是否編譯進核心了。

把你的makefile板書出來。

有。o 而沒有。ko

估計是你把驅動編譯進核心了。

obj-m += $(ko_name).o //m是編譯成module

obj-y += $(ko_name).o //y是編譯進 kernel 只可以看到。o 不會生成ko

linux中把.c的檔案編譯成.so

7樓:出家人詞悲

就跟用vs編譯dll或者lib檔案差不多,把**編譯完成以後,命名為相應的字尾就好了。

例如:gcc -c -fpic

生成然後gcc -shared -fpic -o生成 動態鏈結庫。

把拷貝到系統預設庫目錄下,比如 /lib, /usr/lib 下假定有 要引用這個庫。

gcc -lst -o test

然後就可以了。

假如不能把拷貝到預設庫目錄下,比方說放在了/home/aaa/lib 下。

那麼就用這樣的語句來編譯。

gcc -l/home/aaa/lib -lst -wl,-rpath=/home/aaa/lib -o test

8樓:網友

首先gcc -c -fpic

生成然後gcc -shared -fpic -o生成 動態鏈結庫。

把拷貝到系統預設庫目錄下,比如 /lib, /usr/lib 下假定你有 要引用這個庫。

gcc -lst -o test

然後就可以了。

假如不能把拷貝到預設庫目錄下,比方說放在了/home/aaa/lib 下。

那麼就用這樣的語句來編譯。

gcc -l/home/aaa/lib -lst -wl,-rpath=/home/aaa/lib -o test

linux下能生成兩種.o的檔案 乙個是我用gcc編譯生成的 另乙個是makefile生成的,這倆一樣麼?

9樓:星夜落塵

一樣的,makefile只是乙個指令碼,它實際呼叫的是gcc。

但你這裡用「gcc -o 呼叫的是linux(x86的)的標準gcc,而你的makefile指令碼中的gcc版本是arm_v5t_le-gcc(是用在arm嵌入式處理器的)。兩個處理器不一樣,自然編譯出的不一樣,前者只能在x86電腦上執行,後者只能在arm嵌入式處理機中執行。

你把makefile中的「cc=arm_v5t_le-gcc」改成「cc=gcc」然後再make,之後肯定能執行。

linux怎麼把ko檔案編譯進核心

10樓:挽一匹掛念的稠

從網上找乙個編譯模組的makefile,放到你的模組的資料夾裡面,然後修改裡面的路徑指定編譯的核心,以及目標名稱。make就可以了。

linux c編譯生成的object檔案(.o)檔案,是否相當於j**a的jar之類的庫檔案?

11樓:花花浪客

按照這樣的類比的話,.a檔案(靜態庫,多個。o檔案放在一起的)才更像。jar檔案,.o是相當於。class檔案。

Linux核心中如何申請和釋放記憶體

申請記憶體 void kmalloc size t size,int flags kmalloc函式和malloc函式相似,它有兩個引數,乙個引數是size,即申請記憶體塊的大小,這個引數比較簡單,就像malloc中的引數一樣。第二個引數敏知伏是乙個標誌,在裡面可以指定優猛笑先權之類的資訊。在linux...

如何反編譯c 生成的exe檔案?反彙編就不必說了要e

np複雜度問題,如果樓大能解決可以去申請圖靈獎。簡直太難了,猶如登天,我也想檢視,別人的軟體,編碼方式,可是,可能嗎?高階語言與機器來語言不是一一對 源應的,所以將exe檔案反編譯成c 語言,或其它任何的高階語言,原則上都是不可能的.反彙編成組合語言是可能的,不過現在的程式都這麼複雜而龐大,即使你懂...

linux系統中用gcc編譯並且執行c程式

希望對你有幫助 建議你看看程式設計的一些基礎知識 經典hello word 程式 include int mian 編譯 進入終端 進入源內檔案所在的目錄 gcc hello.c o hello 執行容 hello 1 gcc t 檔名 抄.c o 檔名 2 直襲 接執行 o 後面的檔名即可bai ...