DLL にするには、ソースに以下の変更を加える。
DllEntryPoint を追加。
おまじない DLLEXPORT で func1 を外部から参照できるようにする。
リンク時に -mdll で DLL の作成を指定する。 続いて dlltool で DEF ファイルとライブラリーを作成する。
最終的に myFunc.Dll,myFunc.Def,libmyFunc.a の三つのファイルが出来る。
func1.cpp
#include |
Makefile
DEBUG=1 DLL = myFunc OBJS = func1.o # リンカーオプション LDFLAGS = TARGET = $(DLL).Dll CXXFLAGS = -c -Wall -fmessage-length=0 ifeq ($(DEBUG),1) CXXFLAGS += -O0 -g -D_DEBUG else CXXFLAGS += -Os endif $(TARGET): $(OBJS) g++ -mdll -o $(TARGET) $(OBJS) $(LINKS) -e DllEntryPoint dlltool --export-all --output-def $(DLL).def $(OBJS) dlltool --dllname $(DLL) --def $(DLL).def --output-lib lib$(DLL).a all: $(TARGET) clean: del *.bak del *.o del *.dll del *.a del *.def |
test.cpp
#include |
Makefile
DEBUG=1 DLL = myFunc OBJS = test.o # リンカーオプション LDFLAGS = LIBS = -L. -lMyFunc TARGET = test.exe CXXFLAGS = -c -Wall -fmessage-length=0 ifeq ($(DEBUG),1) CXXFLAGS += -O0 -g -D_DEBUG else CXXFLAGS += -Os endif $(TARGET): $(OBJS) $(CXX) -o $(TARGET) $(OBJS) $(LIBS) all: $(TARGET) clean: del *.bak del *.o del *.exe |