回文章列表
作者littleboypis.bbs@ptt.cc (littleboypis) 看板: linux
標題[問題] 多個 .o, .a 檔編譯在一個執行檔中
時間批踢踢實業 (2008/04/26 Sat 18:30:29)
請教一下

如果我有一程式的目錄結構如下

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


但是,問題出現了

在編main.c時會出現error,如:

main.c:14:28: error: network/function.h: No such file or directory
main.c:15:29: error: fileio/iofunction.h: No such file or directory
main.c:16:29: error: fileio/usbfunction.h: No such file or directory

       .....

請問一下,是我哪邊沒注意到

導致編譯出現了問題?

那這樣要怎麼樣下指令呢


謝謝各位

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 140.123.216.117
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻