GCC的編譯流程分為四部:
預處理(Pre-processing)->編譯(compling)->彙編(Assembling)->連結(linking)
預處理:處理#include、#define、#ifdef等巨集命令
編譯:把預處理完的檔案編譯為彙編程式.s
彙編:把彙編程式.s編譯為.o二進位制檔案
連結:把多個二進位制檔案.o集合連結成一個可執行檔案
這種編譯方式在檔案比較多的時候很複雜,這個時候就可以寫好一個makefile來編譯
Makefile的編寫
# this is make file
Hello.out:max.o min.o hello.c //Hello.out檔案的組成
gcc max.o min.o hello.c -o hello.out //執行gcc語句生成.out檔案
max.o:mac.c //.o檔案不存在的時候執行下面gcc命令
gcc -c max.c
min.o:min.c
gcc -c min.c複製程式碼
main函式中的return
# include <stdio.h>
int main(int argc,char*argv[])
{
printf("hello world \n");
return 0;
}複製程式碼
Linux 檢視命令是否執行成功
echo $? 如果輸出的0,那麼說明該命令執行成功
make && make install 當make命令執行後return 0的時候,才會執行make install
main函式的引數
#include <stdio.h>
int main(int argc,chat*argv[])
{
//輸出的是執行該檔案是的引數個數
printf("argc is %d \n",argc);
int i;
//迴圈輸出每個引數的內容
for(i=0;i<argv;i++)
{
printf("argc[%d] is %s\n",i,argc[i]);
}
return 0;
}複製程式碼
最後,學習筆記如有錯誤,請大家指出,謝謝