例如:
在Pocket PC工程中
#pragma message("链接到../Debug/tinyxmld.lib")
#pragma comment(lib,"../Debug/tinyxmld.lib")
#include "../tinyxml.h"
......
TiXmlDocument *myDoc = new TiXmlDocument();
myDoc->LoadFile("./test.xml");
(注:tinyxmld.lib在vc6.0平台编译生成)
理论上是对的,在mfc、win32平台都ok.
但是在Pocket PC就报错。
1>Flight.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl TiXmlDocument::LoadFile(char const *,enum TiXmlEncoding)" (?LoadFile@TiXmlDocument@@QAA_NPBDW4TiXmlEncoding@@@Z),该符号在函数 "public: void __cdecl CFlight::LoadFlightControl(void)" (?LoadFlightControl@CFlight@@QAAXXZ) 中被引用
1>Flight.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl TiXmlDocument::TiXmlDocument(void)" (??0TiXmlDocument@@QAA@XZ),该符号在函数 "public: void __cdecl CFlight::LoadFlightControl(void)" (?LoadFlightControl@CFlight@@QAAXXZ) 中被引用
原因可能是:
1、“../Debug/”并没有“tinyxmld.lib”文件,所以提示找不到对应的函数实现。
2、Windows Mobile 用的是Armv4I的CPU,VS6 编译的多是X86的,根本就不行。(很隐蔽的原因)解决办法是在Armv4I条件下编译一个对应的lib,提供给Pocket PC项目使用

被折叠的 条评论
为什么被折叠?



