說明:執行的環境ubuntu 12.04 + gcc
#include "my1.h"
#include "my2.h"
int main()
#ifndef _my_1_h
#define _my_1_h
void my1_print(char *print_str);
#endif
#ifndef _my_2_h
#define _my_2_h
void my2_print(char *print);
#endif
#include "my1.h"
#include void my1_print(char *print_str)
#include "my2.h"
#include void my2_print(char *print_str)
main:main.o my1.o my2.o
gcc -o main main.o my1.o my2.o
main.o:main.c my1.h my2.h
gcc -c main.c
my1.o:my1.c my1.h
gcc -c my1.c
my2.o:my2.c my2.h
gcc -c my2.c
clean:
rm -f *.o main
make
gcc -c main.c
gcc -c my1.c
gcc -c my2.c
gcc -o main main.o my1.o my2.o
file ./main
輸出的結果為:
./main: elf 32-bit lsb executable, intel 80386, version 1 (sysv), dynamically linked (uses shared libs), for gnu/linux 2.6.24, buildid[sha1]=0x2c63c471957d709e4d5a19c75c7eda60cfb2f3e2, not stripped
./main
輸出的結果為:
this is my2 print hello my1!
this is my2 print hello my2!
維基百科介紹:
在軟體開發中,make是乙個工具程式(utility software),經由讀取叫做「makefile」的檔案,自動化建構軟體。它是一種轉化檔案形式的工具,轉換的目標稱為「target」;與此同時,它也檢查檔案的依賴關係,如果需要的話,它會呼叫一些外部軟體來完成任務。它的依賴關係檢查系統非常簡單,主要根據依賴檔案的修改時間進行判斷。大多數情況下,它被用來編譯源**,生成結果**,然後把結果**連線起來生成可執行檔案或者庫檔案。它使用叫做「makefile」的檔案來確定乙個target檔案的依賴關係,然後把生成這個target的相關命令傳給shell去執行。
乙個簡單的makefile的編寫
標頭檔案 part.h cpp檔案 包含part.h part.cpp cpp檔案 包含part.h partmain.cpp makefile編寫如下 main partmain.o part.o g o main partmain.o part.o partmain.o partmain.cpp...
編寫乙個簡單通用的makefile
author 李超 date 2012 05 06 縱然makefile 的規則還是相當多的,編寫乙個大規模的軟體,良好的 makefile 架構是方便維護程式編譯的關鍵。學習 makefile 的時間週期還是比較長的,為了寫出規範的 需要在很短的時間內編寫乙個 makefile 這裡給給出乙個 m...
編寫乙個makefile
什麼是makefile?對於大多數的windows程式設計師來講,makefile可能不是那麼重要,因為windows的ide都為程式設計師做好了這個工作。但是在linux下程式設計,會不會寫makefile,從側面上說明乙個人是否具備完成大型工程的能力。makefile的作用 makefile是用...