运行模拟器时调用API时出错

时间:2015-01-14 15:34:27

标签: c++ simulator prefetch

我正在使用从数据预取锦标赛(http://www.jilp.org/dpc/prefetching_framework_description.html)下载的一个软件框架。一切正常,但每当我试图调用API时,系统都会抛出一些错误。 例如,在interface.h文件中,它提供了一个API: void SetPrefetchBit(UINT32 level,CacheAddr_t addr); 我在我的代码中称呼它。代码可以成功编译和链接。但是当我运行代码时,它会抛出错误: PREF_KIT /运行/../ pin / intel64 / bin / pinbin:符号查找错误:/ PREF_KIT /运行/../ bin / CMPsim.usetrace:未定义符号:_Z14SetPrefetchBitjy

我对这个错误感到很困惑。由于代码可以正确编译和链接提供的静态库,这意味着应该提供API。那么错误表明了什么?

任何建议或建议表示赞赏。提前致谢

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我在64位Ubuntu上运行并且可以正常编译但是当我运行时我得到了同样的错误。当我使用以下命令运行 nm 时:

nm libCMPsim64.a | c++filt | grep GetPrefetch

我知道库本身有一个未定义的引用......

0000000000001790 T GetPrefetchBit(unsigned int, unsigned long)
                 U CACHE::GetPrefetchBit(unsigned long, unsigned int)
0000000000000000 r GetPrefetchBit(unsigned int, unsigned long)::__PRETTY_FUNCTION__
00000000000003b0 T CACHE::GetPrefetchBit(unsigned long, unsigned int)