大佬教程收集整理的这篇文章主要介绍了使用Makefile创建DLL以在Windows XP(32位)和Windows 7(64位)上运行,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
CMODE= SWIG = swig CC = $(PREFIX)gcc LD = $(CC) OBJ_DIR = obj AUTOGEN_DIR = ../src/java PACKAGE_DIR = $(AUTOGEN_DIR)/com/test/sample PACKAGE = com.test.sample INCLUDES = -I$(JAVA_INCLUDE) \ -I$(SAMPLE_DIR)/include \ -I$(JDK_HOME)/include LIB_INCLUDES = -L$(SAMPLE_DIR)/lib LIBS = /lib/libssl.so.4 \ /lib/libcrypto.so.4 \ -lSampleApi \ -lm DIRS = $(PACKAGE_DIR) $(DIST_DIR) $(OBJ_DIR) $(AUTOGEN_DIR) CFLAGS = $(CMODE) -Wall -fpic $(INCLUDES) -O0 -g3 SFLAGS = -java $(INCLUDES) -package $(PACKAGE) -outdir $(PACKAGE_DIR) LDFLAGS = -shared $(LIB_INCLUDES) $(LIBS) OBjeCTS = $(OBJ_DIR)/@R_696_9214@wrap.o TARGET = $(LIB_DIR)/SampleNew.dll all: $(DIRS) $(TARGET) %_wrap.c: %.i $(SWIG) $(SFLAGS) $< $(OBJ_DIR)/%.o: %.c $(CC) $(CFLAGS) -c $< -o $@ $(TARGET): $(OBjeCTS) $(LD) $(OBjeCTS) $(LDFLAGS) -o $@ $(DIRS): mkdir -p $@ clean: rm -rf $(TARGET) $(PACKAGE_DIR)/* $(TARGET) $(AUTOGEN_DIR) $(OBJ_DIR)
例外:
java.lang.UnsatisfiedLinkError c:\test\myDllFile.dll: can't load this .dll (machine code=0x101) on a IA 32-bit platform
更新Makefile:
CMODE= SWIG = swig PREFIX=/test/mingw/mingw32/bin/i386-mingw32- CC = $(PREFIX)gcc LD = $(CC) OBJ_DIR = obj AUTOGEN_DIR = ../src/java PACKAGE_DIR = $(AUTOGEN_DIR)/com/test/jni PACKAGE = com.test.jni INCLUDES = -I$(HEADER_FILES_DIR) # env var that points to a dir with all the .h files LIB_INCLUDES = -L$(C_API_DIR)/lib # env var that points to a dir with the C libraries (dlls) LIBS = -lMainApi \ # MainApi.dll -lm DIRS = $(PACKAGE_DIR) $(DIST_DIR) $(OBJ_DIR) $(AUTOGEN_DIR) # DIST_DIR is passed in CFLAGS = $(CMODE) -Wall -fpic $(INCLUDES) -O0 -g3 SFLAGS = -java $(INCLUDES) -package $(PACKAGE) -outdir $(PACKAGE_DIR) LDFLAGS = -shared $(LIB_INCLUDES) $(LIBS) -leay32 -lws2_32 -lrpcrt4 OBjeCTS = $(OBJ_DIR)/@R_696_9214@wrap.o TARGET = $(LIB_DIR)/SampleJni.dll all: $(DIRS) $(TARGET) %_wrap.c: %.i $(SWIG) $(SFLAGS) $< $(OBJ_DIR)/%.o: %.c $(CC) $(CFLAGS) -c $< -o $@ $(TARGET): $(OBjeCTS) $(LD) $(OBjeCTS) $(LDFLAGS) -o $@ $(DIRS): mkdir -p $@ clean: rm -rf $(TARGET) $(PACKAGE_DIR)/* $(TARGET) $(AUTOGEN_DIR) $(OBJ_DIR)
以上是大佬教程为你收集整理的使用Makefile创建DLL以在Windows XP(32位)和Windows 7(64位)上运行全部内容,希望文章能够帮你解决使用Makefile创建DLL以在Windows XP(32位)和Windows 7(64位)上运行所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。