【发布时间】:2014-06-21 21:57:11
【问题描述】:
我开发的软件需要针对外部供应商提供的库进行编译。在某些情况下,这些库可用作共享库 (libexample1.so) 或静态库 (libexample1.a)。
我希望我的 makefile 能够检测到这种情况。我的想法是检查静态库文件,如果它不存在重新定义一些编译标志。
我现在的代码是这样的:
$(PROGRAM1):$(PROGRAM1_OBJS)
ifneq ("$(wildcard $(STATIC_LIB_PATH)","")
@echo "Compiling against static library"
else
@echo "Compiling against dynamic library"
STATIC_LIB_PATH = ""# SETTING IT TO EMPTY
LDFLAGS += -lexample1
endif
(compilation instructions)
这对我不起作用,因为它正在尝试执行 STATIC_LIB_PATH...关于如何处理这种情况的任何建议?这是最好的方法还是有更好的方法?
【问题讨论】:
标签: c linker makefile shared-libraries static-libraries