Windows下使用MingGW+msys编译Xerces库

参考:http://wiki.wxwidgets.org/Building_Xerces-C%2B%2B_XML_Parser_for_EMMe

Xerces下载:http://xerces.apache.org/xerces-c/download.cgi

MingGW与msys的配置可以直接下载:http://sourceforge.net/projects/mingw/files/

下载最新3.1.1的时候先检查下xerces-c-3.1.1\src\xercesc\util目录下的Xerces_autoconf_config.hpp文件是否正确

Xerces_autoconf_config.hpp编译前是Xerces_autoconf_config.hpp.in文件,这个文件如果直接使用是有问题的,不过在用configure生成Makefile的过程中会生成一个正确的Xerces_autoconf_config.hpp文件,并且里面的宏也改成了正确的#define

编译过程:

使用gcc4.4版本,编译后会提示缺少libstdc++.dll.a文件,只要修改libstadc++.a文件(以文本方式打开)中的library_names=''为空即可


使用./configure --prefix=/mingw/ LDFLAGS=-no-undefined时要指定LDFLAGS参数为-no-undefine,如果是gcc4.6以上版本会出现错误:

configure:3810: error: in `/e/xerces-c-3.1.1/build':


configure:3814: error: C++ compiler cannot create executables


See `config.log' for more details.

那在第一步的时候就不加这个参数,至于其他的参数根据具体情况添加,

最好要指定CFLAGS=-O3 CXXFLAGS=-O3参数


configure完成之后,会生成一个Makefile文件,这时候不要直接使用make命令,

因为要加入LDFLAGS=-no-undefined,要不然无法生成动态库

使用make libxerces_c_la_LDFLAGS="-release 3.1 -no-undefined"

你可能感兴趣的:(Windows下使用MingGW+msys编译Xerces库)