linux編譯命令行 linux命令行編程

linux 怎么編譯c的源程序的?gcc,編譯命令是什么?

編譯方法:格式 gcc [option] [sourcefilename]常用的選項(xiàng)最簡單的是:gcc hello.c默認(rèn)的情況下將生成a.out的可執(zhí)行性文件,

我們一直強(qiáng)調(diào)成都做網(wǎng)站、成都網(wǎng)站制作對(duì)于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站建設(shè)公司不一定是大公司,成都創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

只需要在終端上輸入./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í)行文件。

如何在linux平臺(tái)上進(jìn)行交叉編譯

采用交叉編譯的主要原因在于,多數(shù)嵌入式目標(biāo)系統(tǒng)不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉(zhuǎn)移到高性能的主機(jī)中進(jìn)行。

linux下的交叉編譯環(huán)境重要包括以下幾個(gè)部分:

1.對(duì)目標(biāo)系統(tǒng)的編譯器gcc

2.對(duì)目標(biāo)系統(tǒng)的二進(jìn)制工具binutils

3.目標(biāo)系統(tǒng)的標(biāo)準(zhǔn)c庫glibc

4.目標(biāo)系統(tǒng)的linux內(nèi)核頭文件

交叉編譯環(huán)境的建立步驟

一、下載源代碼 下載包括binutils、gcc、glibc及l(fā)inux內(nèi)核的源代碼(需要注意的是,glibc和內(nèi)核源代碼的版本必須與目標(biāo)機(jī)上實(shí)際使用的版本保持一致),并設(shè)定shell變量PREFIX指定可執(zhí)行程序的安裝路徑。

二、編譯binutils 首先運(yùn)行configure文件,并使用--prefix=$PREFIX參數(shù)指定安裝路徑,使用--target=arm-linux參數(shù)指定目標(biāo)機(jī)類型,然后執(zhí)行make install。

三、配置linux內(nèi)核頭文件

首先執(zhí)行make mrproper進(jìn)行清理工作,然后執(zhí)行make config ARCH=arm(或make menuconfig/xconfig ARCH=arm)進(jìn)行配置(注意,一定要在命令行中使用ARCH=arm指定cpu架構(gòu),因?yàn)槿笔〖軜?gòu)為主機(jī)的cpu架構(gòu)),這一步需要根據(jù)目標(biāo)機(jī)的實(shí)際情況進(jìn)行詳細(xì)的配置,筆者進(jìn)行的實(shí)驗(yàn)中目標(biāo)機(jī)為HP的ipaq-hp3630 PDA,因而設(shè)置system type為SA11X0,SA11X0 Implementations中選擇Compaq iPAQ H3600/H3700。

配置完成之后,需要將內(nèi)核頭文件拷貝到安裝目錄: cp -dR include/asm-arm $PREFIX/arm-linux/include/asm cp -dR include/linux $PREFIX/arm-linux/include/linux

四、第一次編譯gcc

首先運(yùn)行configure文件,使用--prefix=$PREFIX參數(shù)指定安裝路徑,使用--target=arm-linux參數(shù)指定目標(biāo)機(jī)類型,并使用--disable-threads、--disable-shared、--enable-languages=c參數(shù),然后執(zhí)行make install。這一步將生成一個(gè)最簡的gcc。由于編譯整個(gè)gcc是需要目標(biāo)機(jī)的glibc庫的,它現(xiàn)在還不存在,因此需要首先生成一個(gè)最簡的gcc,它只需要具備編譯目標(biāo)機(jī)glibc庫的能力即可。

五、交叉編譯glibc

這一步驟生成的代碼是針對(duì)目標(biāo)機(jī)cpu的,因此它屬于一個(gè)交叉編譯過程。該過程要用到linux內(nèi)核頭文件,默認(rèn)路徑為$PREFIX/arm-linux/sys-linux,因而需要在$PREFIX/arm-linux中建立一個(gè)名為sys-linux的軟連接,使其內(nèi)核頭文件所在的include目錄;或者,也可以在接下來要執(zhí)行的configure命令中使用--with-headers參數(shù)指定linux內(nèi)核頭文件的實(shí)際路徑。

configure的運(yùn)行參數(shù)設(shè)置如下(因?yàn)槭墙徊婢幾g,所以要將編譯器變量CC設(shè)為arm-linux-gcc): CC=arm-linux-gcc ./configure --prefix=$PREFIX/arm-linux --host=arm-linux --enable-add-ons 最后,按以上配置執(zhí)行configure和make install,glibc的交叉編譯過程就算完成了,這里需要指出的是,glibc的安裝路徑設(shè)置為$PREFIXARCH=arm/arm-linux,如果此處設(shè)置不當(dāng),第二次編譯gcc時(shí)可能找不到glibc的頭文件和庫。

六、第二次編譯gcc

運(yùn)行configure,參數(shù)設(shè)置為--prefix=$PREFIX --target=arm-linux --enable-languages=c,c++。

運(yùn)行make install。

到此為止整個(gè)交叉編譯環(huán)境就完全生成了。

幾點(diǎn)注意事項(xiàng)

第一點(diǎn)、在第一次編譯gcc的時(shí)候可能會(huì)出現(xiàn)找不到stdio.h的錯(cuò)誤,解決辦法是修改gcc/config/arm/t-linux文件,在TARGET_LIBGCC2_CFLAGS變量的設(shè)定中增加-Dinhibit_libc和-D__gthr_posix_h。

linux編譯安裝命令

Linux編譯安裝相關(guān)命令,下面以Linux安裝MySQL工具為例進(jìn)行說明,代碼如下:

1、測(cè)試環(huán)境在Linux MySQL下進(jìn)行,版本系統(tǒng)為CentOS5,以下為相關(guān)軟件:

mysql-5.1.30

memcached-1.2.6

libevent-1.4.7-stable

memcached_functions_mysql-0.8

libmemcached-0.26

2、編譯安裝Linux MySQL

[root@localhost?~]#tar?xzf?mysql-5.1.30.tar_001.gz??

[root@localhost?~]#cd?mysql-5.1.30??

[root@localhost?~]#./configure?--prefix=/usr/local/mysql51??

[root@localhost?~]#make??

[root@localhost?~]#make?install??

[root@localhost?~]#./scripts/mysql_install_db?--user=mysql?--skip-name-resolve??

[root@localhost?~]#/usr/local/mysql51/bin/mysqld_safe?

#連接符這是放入后臺(tái),是前一個(gè)正確執(zhí)行,才會(huì)執(zhí)行后一個(gè)

#Linux編譯安裝流程./configure??make??make?install(默認(rèn)目錄安裝)

#./configure?--prefix=/usr/local/pcre??make??make?install(指定安裝目錄)

在linux 終端 下如何編譯整個(gè)c項(xiàng)目

linux終端下,編譯C語言程序步驟為:

采用vi進(jìn)行源代碼編寫,編寫完成后,:wq存盤退出,如:

vi test.c

在命令行下,運(yùn)行g(shù)cc編譯程序,生成執(zhí)行碼,如:

gcc ?-o test test.c

-o 表示指明生成的執(zhí)行碼名稱

運(yùn)行編譯后的執(zhí)行碼

./test

“l(fā)inux”怎么編譯c的源程序的?“gcc”編譯命令是什么?

格式 gcc [option] [sourcefilename]

介紹一些常用的選項(xiàng):最簡單的是:gcc hello.c

默認(rèn)的情況下將生成a.out的可執(zhí)行性文件,你只需要在終端上輸入./a.out就可以看到執(zhí)行的結(jié)果.

如果你想指定生成目標(biāo)文件的名字那么你可以加上 -o選項(xiàng),命令如下:

gcc -o hello hello.c

命令如下:

gcc -c hello hello.c

linux終端下如何進(jìn)行C語言編譯

1、首先在linux下判斷是否安裝gcc編譯器,直接執(zhí)行:gcc -v,判斷是否安裝gcc。

2、然后需要在代碼框內(nèi)寫一個(gè)簡單的C源程序。

3、在程序中使用了C語言中的數(shù)學(xué)開方函數(shù),sqrt(),所以需要引入math.h頭文件。

4、寫完源程序之后,我們對(duì)其進(jìn)行編譯,如果使用通常的編譯語句,【gcc math.c -o math】進(jìn)行編譯,會(huì)出現(xiàn)錯(cuò)誤;大概的意思就是不認(rèn)識(shí)sqrt這個(gè)東西。

5、所以需要使用正確的命令:【gcc math.c -lm -o math】;這樣才能編譯正確。

文章標(biāo)題:linux編譯命令行 linux命令行編程
標(biāo)題鏈接:http://muchs.cn/article2/doccgic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃商城網(wǎng)站、響應(yīng)式網(wǎng)站外貿(mào)建站、微信公眾號(hào)網(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)

成都app開發(fā)公司