我正在使用wcecompat来弥合WinCE SDK和OpenSSL之间的差距.由于LGPL许可证问题,我想将其编译为动态链接库.这是makefile的一部分(完整文件位于
https://github.com/mauricek/wcecompat/blob/master/makefile).我的问题是,如何修改它来构建一个DLL而不是一个静态的lib?
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)
解决方法
对两个目标使用链接(即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函数作为入口点(尽管它不是这样导出的).