我使用wcecompat来弥合WinCE SDK和OpenSSL之间的差距。由于LGPL许可证问题,我想将其编译为动态链接库。这是makefile的一部分(完整文件位于https://github.com/mauricek/wcecompat/blob/master/makefile)。我的问题是,如何修改它来构建一个DLL而不是一个静态的库?
all: lib\wcecompat.lib lib\wcecompatex.lib
echo $(OBJS)
obj:
@md obj 2> NUL
lib:
@md lib 2> NUL
$(OBJS): makefile obj
lib\wcecompat.lib: lib $(OBJS) makefile
@lib /nologo /out:lib\wcecompat.lib $(LFLAGS) $(OBJS)
lib\wcecompatex.lib: lib $(OBJS) makefile
@lib /nologo /out:lib\wcecompatex.lib $(OB
JS)
答案 0 :(得分:1)
对两个目标使用link
(即link.exe)而不是lib
:
lib\wcecompat.lib: lib $(OBJS) makefile
@lib /nologo /out:lib\wcecompat.lib $(LFLAGS) $(OBJS)
lib\wcecompatex.lib: lib $(OBJS) makefile
@lib /nologo /out:lib\wcecompatex.lib $(OBJS)
...并将目标重命名为wcecompat.dll
和wcecompatex.dll
。
但是,这确实只会帮助您构建DLL,它不包括从该DLL导出您可能需要的函数的任何修改。还要记住带代码的DLL有一个DllMain函数作为入口点(尽管它不是这样导出的)。