2011-01-25 84 views
4

我正在使用wcecompat來彌補WinCE SDK和OpenSSL之間的差距。由於LGPL許可證問題,我想將其編譯爲動態鏈接庫。這是makefile的一部分(完整文件位於https://github.com/mauricek/wcecompat/blob/master/makefile)。我的問題是,如何修改它來建立一個DLL而不是一個靜態庫?編譯wcecompat到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

使用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函數作爲入口點(儘管它不是這樣導出的)。

+0

我爲同事提供了一個賞金,但他們無法驗證,但你得到的賞金比任何人都好; )thanx的幫助! – TJB 2011-04-25 23:01:11