昨天,OSBench不能顺利测试,后来我就打算把OSBench源码移植到BSP调试的想法。今天开始实施,没有想到遇到了非常棘手的问题。
我按照我的以前的做法
加入
#TARGETTYPE=LIBRARY
TARGETTYPE=DYNLINK——lib 变 DLL
RELEASTYPE=PLATFORM——表示是BSP生成的lib/dll
不知道怎么回事,刚开始一堆错误。后来我发现是少了CORE相关的库链接,
加入
TARGETLIBS=$(_SYSGENSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
$(_SYSGENOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib /
但是还是有一个错误。
BUILD: [01:0000000101:ERRORE] osbench.obj : error LNK2001: unresolved external symbol TestPSL
后来发现这个不是库的问题,但是不明白微软是如何编译的通过的。
折腾了一番,原来是TestPSL没有实现相关的函数,
const PFNTEST TestTable[] = {
(PFNTEST) TestCriticalSections,
(PFNTEST) TestEvents,
(PFNTEST) TestSemaphores,
(PFNTEST) TestMutexes,
(PFNTEST) TestYield,
//(PFNTEST) TestPSL,
(PFNTEST) TestInterlock,
};
我就屏蔽掉 它就可以编译通过了。现在加入打印信息。调试吧。