我有一个生成文件模板来编译单个 DLL(用于插件系统)。用户的 makefile 如下所示:
EXTRA_SRCS=file1 file2
include makefile.in
在makefile.in
我有:
plugin.dll: plugin.os $(patsubst %,%.os,$(EXTRA_SRCS))
plugin.os
要编译的主要 C++ 文件在哪里。顺便说一句,文件结尾是.os
为共享库编译的目标文件(即使用-fpic
选项 with gcc
)
现在,问题是额外的源可能(但不一定)是头文件。理想情况下,我想将它们添加为目标plugin.os
和 的依赖项file.cpp
,但前提是它们存在。
该方法应该适用于 windows 和 linux,或者至少适用于每个。但是,我只使用 GNU 版本的 make。