尝试使用MinGW在Windows系统上编译libs3(http://libs3.ischo.com.s3.amazonaws.com/index.html)时遇到一系列问题。
似乎代码不可移植或不是32位友好。我偶然发现了这个错误:http://sourceforge.net/p/mingw/bugs/1315/。似乎我们必须深入研究libs3代码并修复它以使用MingW进行编译。不确定是否有MingW的版本可以避免这种情况或解决这个问题(似乎这种行为是由MingW团队设计的)。
我们尝试使用libs3修复代码问题但是徒劳无功。修复一个部分,弹出一些其他东西(即使它们在那里等也无法找到一些库...)。
特别是以下MinGW Makefile代码: #libs3库目标
LIBS3_SHARED = $(BUILD)/bin/libs3.dll
LIBS3_STATIC = $(BUILD)/lib/libs3.a
.PHONY: libs3
libs3: $(LIBS3_SHARED) $(BUILD)/lib/libs3.a
LIBS3_SOURCES := src/acl.c src/bucket.c src/error_parser.c src/general.c \
src/object.c src/request.c src/request_context.c \
src/response_headers_handler.c src/service_access_logging.c \
src/service.c src/simplexml.c src/util.c src/mingw_functions.c
$(LIBS3_SHARED): $(LIBS3_SOURCES:src/%.c=$(BUILD)/obj/%.o)
$(QUIET_ECHO) $@: Building dynamic library
- @ mkdir $(subst /,\,$(dir $@)) 2>&1 | echo >nul
$(VERBOSE_SHOW) gcc -shared -o $@ $^ $(LDFLAGS) -lws2_32
$(LIBS3_STATIC): $(LIBS3_SHARED)
$(QUIET_ECHO) $@: Building static library
- @ mkdir $(subst /,\,$(dir $@)) 2>&1 | echo >nul
$(VERBOSE_SHOW) dlltool --def mswin\libs3.def --dllname $(subst /,\,$<) \
--output-lib $(subst /,\,$@)
给出:
C:&gt; mingw32-make -f D:\ libs3-2.0 \ libs3-2.0 \ GNUmakefile.mingw install mingw32-make: * 没有规则来制作'build / bin / libs3.dll'所需的目标'build / obj / acl.o'。停止。