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