※ 引述《littleboypis.bbs@ptt.cc (littleboypis)》之銘言:
> 請教一下
> 如果我有一程式的目錄結構如下
> main.c
> Makefile
> network/
> --/function.c
> --/function.h
> --/Makefile
> fileio/
> --/iofunction.c
> --/iofunction.h
> --/usbfunction.c
> --/usbfunction.h
> --/Makefile
> main.c有呼叫一些function所以
> main.c include function.h and iofunction.h usbfunction.h
> 我在編譯時都是這麼編譯的(在 Makefile中)
> 在最top_dir下
> make all
> 接著會各自在子目錄中 make all,在各目錄會產生.o檔,而在fileio會產生一個.a
> 語法如下:
> gcc -v -g -c -o function.o function.c
> gcc -v -g -c -o iofunction.o
> gcc -v -g -c -o usbfunction.o
> ar rc fileio.a iofunction.o usbfunction.o
> 最後,main.c在跟這些檔案編在一起
> gcc -v -g -o main network/function.o fileio/fileio.a
改下
gcc -v -g -Ifileio -Inetwork -o main network/function.o fileio/fileio.a
另外建議的是如果fileio和network目錄下的.h是要給外部程式include的話,
可以另外放在topsrc_dir的include下。
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 220-133-54-140.hinet-ip.hinet.net