#(註解) 判斷是否有 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
#includeb.cvoid a(char * arg) { printf("a: you passed %s\n", arg); }
#includemain.cvoid b(int arg) { printf("b: you passed %d\n", arg); }
#include "lib.h" int main() { a("Dream Hello"); }lib.h
void a (char*); void b (int);
參考教學
沒有留言:
張貼留言