2011年7月16日 星期六

Makefile 初見

#(註解) 判斷是否有 main.exe 沒有就往後找有無 main.o libtest.a
main.exe:main.o libtest.a
#切記前面是 或者輸入 gcc -o main.exe main.o libtest.a
# -L後面接參考目錄 . 為當下目錄 -l後面接參考檔案
 gcc -o main.exe main.o -L. -ltest
#由這行來產生我們要的 main.o 但是 main.c有 include lib.h
main.o:main.c lib.h
#切記前面是
 gcc -c main.c 
libtest.a:a.o b.o
#產生libtest.a 的靜態函式庫 linux 把靜態目錄 命名為 libXXXX.a
 ar crv libtest.a a.o b.o
libtest.so:a.c b.c 
#linux 動態目錄命名為 libXXXX.so
 gcc a.c b.c -shared -o libtest.so
#make clean執行這行
clean:
 rm -f *.o 
 rm -f libtest.a
 rm -f *.exe
ldd:main.exe
#可以看連結 哪幾個 dll
 ldd main.exe


程式碼:
a.c
#include 
void a(char * arg)
{
    printf("a: you passed %s\n", arg);
}
b.c
#include 
void b(int arg)
{
    printf("b: you passed %d\n", arg);
}
main.c
#include "lib.h"
int main()
{
    a("Dream Hello");
}
lib.h
void a (char*);
void b (int);

參考教學

沒有留言:

張貼留言