gpt4 book ai didi

c++ - 使用一个 Makefile 构建多个共享库

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:16 26 4
gpt4 key购买 nike

我试图在一个 makefile 中构建多个共享库。这就是我用来构建一个共享库的内容:

CC = gcc # C compiler
PWD := $(shell pwd)
CFLAGS = -fPIC -Wall -Wextra -O2 -g # C flags
LDFLAGS = -shared # linking flags

RM = rm -f # rm command

CFLAGS += $(DFLAGS)

TARGET_LIB := lib1.so # target lib
#TARGET_LIB += lib2.so

SRCS := lib1.c # source files
#SRCS += lib2.c # source files

OBJS = $(SRCS:.c=.o)

.PHONY: all
all: $(TARGET_LIB)

$(TARGET_LIB): $(OBJS)
$(CC) $(INC) $(LDFLAGS) $(CFLAGS) -o $@ $^

但是,我不能只取消注释 lib2 的行并同时构建它。这可能是因为 $(TARGET_LIB): $(OBJS) 扩展为 lib1.so lib2.so : lib1.o lib2.o 这不是我想要的。

相反,我想要类似的东西

lib1.so : lib1.o

lib2.so : lib2.o

但我不确定该怎么做,也不知道它叫什么。谁能告诉我该怎么做才能实现我的目标?

编辑:我应该更清楚。我意识到您可以添加更多目标来构建这些目标。但是有没有一种方法可以做到这一点而不必每次我想添加一个新库时都编写一个新目标?

谢谢。

最佳答案

你可以这样做 -

全部:lib1.so lib2.so

并提供制作lib1.so和lib2.so的规则

关于c++ - 使用一个 Makefile 构建多个共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477639/

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