編譯方法:格式 gcc [option] [sourcefilename]常用的選項最簡單的是:gcc hello.c默認的情況下將生成a.out的可執行性文件,
我們提供的服務有:成都網站設計、網站建設、微信公眾號開發、網站優化、網站認證、桃源ssl等。為1000+企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的桃源網站制作公司
只需要在終端上輸入./a.out就可以看到執行的結果,如果你想指定生成目標文件的名字那么你可以加上 -o選項,命令如下:gcc -o hello hello.c
命令:gcc -c hello hello.c
擴展資料:
gcc命令的基本用法
gcc[options]?[filenames] ?
其中,filenames為文件名;options為編譯選項。
當不使用任何編譯選項編譯hello.c時,gcc將會自動編譯產生一個a.out的可執行文件:
[root@localhost?c]#?ls ?
hello.c ?
[root@localhost?c]#?gcc?hello.c ?
[root@localhost?c]#?ls ?
a.out??hello.c?
執行:
[root@localhost?c]#?./a.out ?
Hello,?World!?
使用-o編譯選擇,可以為編譯后的文件指定一個名字:
[root@localhost?c]#?ls ?
a.out??hello.c ?
[root@localhost?c]#?gcc?hello.c?-o?hello ?
[root@localhost?c]#?ls ?
a.out??hello??hello.c ?
執行:
[root@localhost?c]#?./hello ?
Hello,?World!?
注意:使用-o選項時,-o后面必須跟一個文件名,即:-o outfile。
為了便于描述后面的選項,刪除hello和a.out可執行文件。
1. 檢測/usr/src/linux/include/linux/version.h是否存在,以判斷是否以安裝內核源碼,而如果只將內核源碼包解壓,并不存在version.h這個文件,所以需要做如下步驟:
在內核源碼目錄下(/usr/src/linux)
1)make include/linux/version.h 生成version.h文件
2)make include/asm 創建
如果從下載的源碼包,使用下列命令安裝:
cd /usr/src 進入/usr/src目錄中,將源碼包放置在這里。
tar jxvf linux-2.6.18.tar.bz2 解壓源碼包,會生成linux-2.6.9目錄
ln -s /usr/src/linux-2.6.18 /usr/src/linux 編譯內核建議做個軟鏈接。
并且要確保/lib/modules/2.6.18/下的build,source目錄
正確指向/usr/src/linux-2.6.18的:
[root@localhost modules]#ls -l /lib/modules/2.6.18
lrwxrwxrwx 1 root root 21 2008-07-03 14:28 build - /usr/src/linux-2.6.18/
lrwxrwxrwx 1 root root 21 2008-07-03 14:28 source - /usr/src/linux-2.6.18/
做完這些,我去安裝NVIDIA驅動,結果編譯時出錯。
將內核源碼編譯一次,不安裝,就可以正常編譯了
2.4.x內核不知是否如此,如果編譯NVIDIA過程中出現錯誤,就先編譯一下內核
方法很簡單:
從/boot目錄下復制config-2.6.10到/usr/src/linux下
命名為.config
對于2.6.x內核使用下列命令編譯:
cd /usr/src/linux 進入源碼目錄
make 編譯內核及模塊
注意:不要去make install 只要編譯就可以了。
2.4.x使用下列命令編譯內核,同樣,只編譯不安裝。
cd /usr/src/linux
make dep 建立依賴關系(不知道是否有必要,做下沒壞處)
make bzImage 編譯內核
make modules 編譯模塊
通常發行版中/boot中應該有當前內核的配置文件,如上面的config-2.6.9
如果沒有的話,可以通過下列命令創建出.config
[root@localhost linux]# cd /usr/src/linux
[root@localhost linux]#make menuconfig 字符界面配置內核
[root@NEWLFS linux]#make xconfig 圖形界面配置內核
這兩種方法任選其一,喜歡的話,可以自己配置一下。
或者直接使用默認值,保存退出即可。這樣編譯時間會長一些。
make menuconfig: 假如是在圖形界面中的終端運行,要保證
該終端窗口為全屏,才不會出錯。
首先uname -r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之后會在當前目錄下生成.config配置文件,以后的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make modules、make modules
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決于 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過后你編譯的內核源碼就成功地運行了,如果出現問題,比如鼠標不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好后就萬事ok了。
最后再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
網頁題目:linux源碼編譯命令 linux 命令源碼
文章起源:http://m.newbst.com/article28/ddcoicp.html
成都網站建設公司_創新互聯,為您提供做網站、關鍵詞優化、網站排名、網站設計、建站公司、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯