① 深入講解GCC和Make的區別
Make用於構建目標,但它本身只調用其他程序,如gcc,ld
gcc用於編譯,鏈接
make只是用於管理
gcc是真的編譯
② 咱們都知道安裝linux軟體用make命令,問題我現在make也沒。如何先安裝make工具
首先, 高手才用make; 因為自行編譯首先要了解軟體與發行版的兼容性,與內核的兼容性以及依賴關系等一系列問題;否則生產環境中問題大了!~~~~~~~~~
其次: 你問的問題是先有雞還是先有蛋的問題;
再次: make是C語言寫的, 你沒有gcc怎麼make;make調用的就是gcc或者g++;有點常識的人都知道makefile文件是對各個源文件的統籌編譯;你make無非就是省去了把一個個的源文件編譯成.so文件或者.lib文件步驟; 很多開始學linux伺服器編程的都是對各個源代碼文件一個個的gcc的;然後再一起gcc; 而會寫makefile文件的就寫一起make了;
最後: 你還是用匯編重寫再編譯吧!笑~~~~~~~~~~~~~
③ 如何給Make命令用來傳遞參數
有時候,我們還是需要讓make命令帶入一些參數給makefile腳本。
比如,你在代碼裡面需要定義一個宏DEBUG來打開調試開關,代碼如下:int main(){int i=9;#ifdef DEBUGi=1;#elsei=0;#endifprintf("i=%d ", i);return 0;}一般來說,這個宏定義可以通過直接修改源代碼進行,但這樣顯然不是很好的辦法。另外一個辦法是通過makefile修改,比如:
CFLAGS=-g -Wall -DDEBUG
object=myprog
all:$objectmyprog:a.c
gcc ${CFLAGS} a.c -o ${object}
如果更進一步,連makefile都不想修改,我們可以通過向make命令傳遞參數來進行,為此,我們需要適當的修改makefile如下:
CFLAGS=CFLAG
CFLAGS+=-g -Wall -DDEBUG
object=myprog
all:$objectmyprog:a.c
gcc ${CFLAGS} a.c -o ${object}
此時,如果想打開DEBUG宏,我們可以這樣輸入make命令:
[ychq@ICM3-2 net]$ make CFLAG=-DDEBUG
gcc -g -Wall -DDEBUG a.c
a.c: In function `main':
a.c:9: warning: implicit declaration of function `printf' [ychq@ICM3-2 net]$
我們可以發現,DEBUG宏已經被正確的傳入。
更進一步的,我們可以通過傳遞不同的參數給make,讓make編譯不同的模塊。
④ 如何用GCC在linux下編譯C語言程序
在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器,假設我們有下面一個非常簡單的源程序(hello.c):
int main(int argc,char **argv)
{
printf("Hello Linux
");
}
要編譯這個程序,我們只要在命令行下執行:
gcc -o hello hello.c
gcc 編譯器就會為我們生成一個hello的可執行文件.執行./hello就可以看到程
序的輸出結果了
⑤ Linux中make, make install命令分別是什麼,用法
make是用來編譯的,它從Makefile中讀取指令,然後編譯。
make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。
用法:
1、make:
這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟體需要調用perl或python來進行編譯)。
如果 在 make 過程中出現 error ,就要記下錯誤代碼(注意不僅僅是最後一行),然後可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址)。
或者系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能。
比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。
make 是 Linux 開發套件裡面自動化編譯的一個控製程序,他通過藉助 Makefile 裡面編寫的編譯規范進行自動化的調用 gcc 、ld 以及運行某些需要的程序進行編譯的程序。
一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。
2、make install
這條命令來進行安裝(當然有些軟體需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 許可權(因為要向系統寫入文件)。
(5)gccmake命令擴展閱讀
當我們在使用make命令時,常常會在make後面加上其他單詞,比如check,install,installcheck…這些單詞都是make的參數,我們稱之為「目標(targets)」。
最常見的幾個目標:
make all:編譯程序、庫、文檔等(等同於make)
make install:安裝已經編譯好的程序。復制文件樹中到文件到指定的位置
make unistall:卸載已經安裝的程序。
make clean:刪除由make命令產生的文件
make distclean:刪除由./configure產生的文件
make check:測試剛剛編譯的軟體(某些程序可能不支持)
make installcheck:檢查安裝的庫和程序(某些程序可能不支持)
make dist:重新打包成packname-version.tar.gz
⑥ makesuite不識別
您好我的回答是 解決方法操作步驟是 :您應該運行mingw32-make而不是make.
如果為了簡單起見,希望通過make調用它,則可能需要定義一個運行mingw32-make的別名".雖然我對Windows中的CMD不太熟悉,但是我認為應該可以使用以下命令:
set make=mingw32-make
但是,我不認為這將是永久的.您可能想嘗試在運行mingw32-make的...\mingw\bin中添加批處理文件make.bat.但是,此批處理文件將需要將所有其他參數轉發"到mingw32-make.我不知道,也許有更好的方法來創建永久別名.
⑦ 怎麼用gcc 和makefile
gcc是編譯軟體,makefile在編譯內核時才用到的好像。
如果你用rpm包,可以
yum install gcc
yum install ****
deb包用的
aptget ****
我也不太熟,不知道是不是
⑧ linux 中gcc怎麼用,make 怎麼用
1)gcc xxx.c 自動會默認生成一個 a.out可執行文件;
2) ./a.out =>執行可執行文件;
3)man gcc =>所有使用方法都出來了;
----------------------------------------------
4)make 使用必須要當前目錄Makefile文件,不然make沒用;make 其實就是調用當前目錄下的Makefile(有些系統不一定是這個文件名字),執行Makefile文件中的腳本程序;
----------------------------------------------
5)其實這些問題都是小兒科:網路一下什麼都出來了!不行google!
⑨ 為什麼在linux已經安裝了gcc後,在linux終端輸入make命令不能執行
一、linux能上網么? 能上網的話 yum -y install gcc* 二、 掛載光碟或解壓iso,把所有的rpm包拷到linux某個目錄中,然後再安裝
⑩ 為什麼我安裝了gcc在安裝redis時make指令還是報錯
進入Redis目錄下的src目錄下,執行make命令來編譯Redis。當樓主執行編譯命令的時候,編譯失敗了,報了「/bin/sh:
cc:
command
not
found」的錯誤。原來是樓主的linux系統木有裝gcc,而Redis是C實現的,所以需要gcc來進行編譯。