1
我有以下使文件如何鏈接通過調用多個make文件生成的不同文件夾中的文件?
all: XmlNode.o y.tab.o y.tab.o lex.yy.o
gcc -g -o prog y.tab.o lex.yy.o XmlAttributeNode.o XmlNode.o -ll -ly -lm
XmlNode.o:
cd XmlNode; make
y.tab.o: y.tab.c
gcc -g -c y.tab.c
lex.yy.o: lex.yy.c
gcc -g -c lex.yy.c
y.tab.c: LexYacc/prog1.y
bison -y -dv LexYacc/prog1.y
lex.yy.c: LexYacc/prog1.l
lex -l LexYacc/prog1.l
clean:
rm -f y.tab.* lex.yy.* *.o prog
XmlAttributeNode.o
和XmlNode.o
在XmlNode
文件夾製成,所以我得到的錯誤
gcc: XmlAttributeNode.o: No such file or directory
gcc: XmlNode.o: No such file or directory
我看着下面的問題1,2和3,但我似乎無法找到我如何獲得由XmlNode.o生成的所有.o文件的列表,所以1)我不必手動輸入它們,並且2)包含正確的路徑,以便gcc可以查找.o文件。因此,像這樣:
XmlNode.o:
cd XmlNode; XmlNodeList = .o files from this make; XmlPath = `pwd`;
然後:
all: XmlNode.o y.tab.o y.tab.o lex.yy.o
gcc -g -o prog y.tab.o lex.yy.o XmlPath/XmlNodeList -ll -ly -lm
任何幫助,將不勝感激。
你看過[Recursive Make Considered Harmful](http://miller.emu.id.au/pmiller/books/rmch/)嗎? –
這似乎有用的信息謝謝。 – mihajlv
因此...在'XmlNode.o'規則中,您想使用'XmlPath/Makefile'在'XmlPath /'中運行Make,這會在'XmlPath /'中生成幾個.o文件,然後您想要使用主makefile文件的列表? – Beta