gpt4 book ai didi

c - 如何链接通过调用多个 make 文件生成的不同文件夹中的文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:02 25 4
gpt4 key购买 nike

我有以下生成文件

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.oXmlNode.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

如有任何帮助,我们将不胜感激。

最佳答案

假设评论中的信息,这至少会起作用。

all:    XmlNode.o y.tab.o   y.tab.o lex.yy.o
gcc -g -o prog y.tab.o lex.yy.o XmlNode/XmlAttributeNode.o XmlNode/XmlNode.o -ll -ly -lm

XmlNode/XmlAttributeNode.o XmlNode/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; cd XmlNode; make clean

关于c - 如何链接通过调用多个 make 文件生成的不同文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10590593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com