14 Mar 2012

c++编译使用tinyxml

可以将tinyxml编译为dll使用,但是不时碰到unsolved external symbol错误,问题解决如下,记录保存:



1、打开tinyxml工程。 打开项目属性,将“配置属性--C/C++--代码生成--运行时库”设置为“多线程调试 DLL(/MDd)”(只要跟你工程的设置相同即可)。 重新编译tinyxml工程得到tinyxml.lib(静态连接)和dll(动态连接),可能需要拷贝2个h文件.
2、 打开项目属性,在“配置属性--链接器--命令行”的“附加选项” 把tinyxml.lib加上去。
3、仍有"LIBCMT"冲突错误存在,在 “配置属性-->链接器-->输入-->忽略特定库”中把libcmt.lib添加进去 或者 在“配置属性-->链接器-->命令运”的“附加选项”添加上 /NODEFAULTLIB:libcmt.lib
4、重新编译,通过。可以顺利使用tinyxml类操作了。
(我并没有发现3的问题,直接加入命令行链接后就ok了)


----------------------
tinyxml用vs2008编译的方法:
下载了2.6.2之后发现,可能solution使用2010建立的,无法打开.最简单的办法就是:
TinyXml由两个头文件(.h文件)和四个CPP文件(.cpp文件)构成,所以新建一个empty工程,然后将,tinyxml.h、tinystr.h、 tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp加入工程,就可以开始编译.
需要注意的是:
工程的属性,设置为lib或者dll,sub_system改为non-set.最重要的修改是:
工程属性,c++,code generation改成multi threaded dll

No comments :

Post a Comment