将wcecompat编译为dll

时间:2011-01-25 02:09:35

标签: c windows open-source makefile

我使用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)

1 个答案:

答案 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.dllwcecompatex.dll

但是,这确实只会帮助您构建DLL,它不包括从该DLL导出您可能需要的函数的任何修改。还要记住带代码的DLL有一个DllMain函数作为入口点(尽管它不是这样导出的)。