① gcc 怎麼生成.ko 模塊文件
http://..com/question/81844701.html
我回答的一個相似問題
gcc -Wall adc.c -o adc.o
或者在makefile中寫下:
adc.o:
gcc -Wall adc.c -o adc.o
然後make,注意adc.o:下面的空格必須用Tab鍵
③ 請人幫忙用linux生成個arm平台的.ko文件
Makefile
obj-m = joydev.o
make -C /lib/moles/kernel_3.0.50/build SUBDIRS= $(pwd) moles
④ 編譯時內核怎麼生成的ko文件
從網上找一個編譯模塊的makefile,放到你的模塊的文件夾裡面,然後修改裡面的路徑指定編譯的內核,以及目標名稱。make就可以了。
⑤ 如何用gcc編譯生成動態鏈接庫*.so文件
生成動態鏈接庫的命令行為:
gcc -fPIC -shared -o libstr.so
當將main.c和動態鏈接庫進行連接生成可執行文件 的命令如下:
gcc main.c -L./ -lstr -o main或者gcc -o main main.c -L./ -lstr
測試是否動態鏈接,如果列出libstr.so, 那麼應該是連接正常了ldd main註:1)-L.:表示連接的庫在當前的目錄中。
⑥ 怎麼設置gcc編譯出來的可執行文件名字
這是因為當前目錄不再PATH中。 所以執行該程序必須加上路徑(絕對路徑活相對路徑)。 「.」在Linux(以及許多其他系統中)指的是當前目錄(就是你執行pwd所看到的目錄)。因此「./foo」指的是運行當前目錄下的foo程序。
⑦ gcc編譯後的文件如何運行
Windows系統
假如生成的可執行文件名稱為prog.exe,位於D:\cpp文件夾下,那麼打開命令行,運行下面兩條命令
cd D:\cpp
prog.exe
注意,如果用gcc編譯的時候未指定可執行文件名稱,則默認為a.exe
Linux系統
假如生成的可執行文件名稱為prog,位於home下的CPP文件夾,那麼打開終端,運行下面兩條命令
cd ~/CPP
./prog
注意,如果用gcc編譯的時候未指定可執行文件名稱,則默認為a.out
⑧ 編譯時內核怎麼生成的ko文件
不玩這個,這里提供一個思路
gcc命令其實是分成幾步執行的,預處理,編譯,鏈接。".o"才到編譯這一步,如果按照生成ko文件的方式鏈接一下說不定能成。
另生成你所說的.o文件的源代碼一定是要按".ko"的規范寫的,也就是什麼模塊注冊,模塊卸載等函數是必需要有的.
想想編譯ko里的makefile,裡面好像是引入了一個moles目錄吧!
呵呵,3樓的方法是普通的鏈接過程。「.ko」的鏈接應該不會這么簡單!
望樓主細心探索
⑨ linux下用gcc編譯出的可執行文件和.o的編譯文件有什麼區別
.o 是可重定位目標程序, 雖然打包了機器語言指令,但它還需要和其它的庫(比如你用的printf())做鏈接,最終生成可執行目標文件,這樣才可能被載入到內存中由系統執行.
你的程序里用到printf(),但你自己並沒有實現它,實現在系統的庫文件中,因此可鏈接後才能用嘛.
⑩ GCC如何編譯一個匯編文件,得到可執行文件
gcc -c my.s(生成my.o)
gcc -o my my.o
my就是所要的可執行文件
或者直接可以gcc -o my my.s