1. 测试环境
- Windows XP SP3
- Erlang/OTP R13B03
- MinGW 5.1.6
- 设置PATH, C_INCLUDE_PATH, LIBRARY_PATH环境变量
- 将mingw32-make.exe改名为make.exe
2. 自制makefile
# by xumingyong@gmail.com
all: nif_dll nif.beam
# for win32 dll compiler
CC = gcc
CFLAGS = -shared
INPUT = nif.c wpcap.lib
nif_dll: nif.h
$(CC) $(CFLAGS) -o nif.dll $(INPUT)
# for erlang beam compiler
ERL = erlc
.SUFFIXES: .erl .beam
.erl.beam:
$(ERL) $<
clean:
del *.beam *.dll erl_crash.dump
3. 试验
使用make -n 检查输出命令,不真正运行。
使用make -MM自动扫描.c文件,以产生依赖文件,其中不包括#include<>中的头文件。