我想让Makefile用于我的静态库,在那里我可以有条件地将其构建为程序来执行简单的自检。我当前的Makefille如下所示:
OBJECTS = sm3.o ./core/sm3_internal.o
INCLUDES = -I. -I./core
CFLAGS = -g -Wall -O3
CC = c99
OUT = libsm3.a
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS) $(INCLUDES)
$(OUT): $(OBJECTS)
ar rcs $(OUT) $(OBJECTS)在我的主库文件中,我有:
#ifdef TEST
main(int argc, int* argv[])
{
//my self-test logic here
}
#endif我应该在哪里添加-DTEST标志?如果我将其添加到CFLAGS,然后添加行:
test: $(OBJECTS)库也是用main构建的,这显然不是我想要的。
发布于 2016-07-26 05:00:03
我建议你有条件地编译main.c:
$(TESTOUT): $(OBJECTS) $(TESTOBJ)
$(CC) -o $@ $<https://stackoverflow.com/questions/38577138
复制相似问题