gpt4 book ai didi

c - 从应用程序 makefile 运行库 makefile

转载 作者:行者123 更新时间:2023-12-04 19:07:37 24 4
gpt4 key购买 nike

我有一个使用我的库的应用程序。对于这两个项目,我有单独的 makefile
我的应用程序(源代码 + Makefile)位于“客户端”文件夹中。在同一级别,我有库文件夹“mylib”。
客户端应用程序的 make 文件如下所示:

LIBS = -L../mylib -lmy
CFLAGS = -Wall -W -I../mylib

TARGET = clientapp
SOURCEDIR = .
SOURCES = $(wildcard $(SOURCEDIR)/*.c)
OBJECTS = $(SOURCES:.c=.o)

all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CXX) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(LDFLAGS) -Wl,-rpath=../mylib
clean:
rm -f $(OBJECTS) $(TARGET)
目前要使一切正常工作,我首先需要转到库文件夹,在那里调用 make,然后转到客户端应用程序文件夹并在此处调用 make。
我想要做的是运行客户端应用程序的 makefile 中的所有内容。
我发现我需要使用'recursive make'。
但我不能让它建立一切。唯一的库已构建。
什么是正确的语法?

最佳答案

尽管从长远来看,递归 make 并不是最好的解决方案,但如果您刚刚开始,它是一个可行的选择。
在顶层你只需要创建一个只执行你现有的两个 makefile 的新 Makefile

.PHONY: all
all:
$(MAKE) -C mylib
$(MAKE) -C source
(显然,缩进应该是制表符)
这将在各自的目录中执行两个 makefile。
最好包含 makefile 并且是非递归的,但这需要更多的 make 知识。一次迈出一步。

关于c - 从应用程序 makefile 运行库 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65436552/

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