运行 模拟器调用 API 时出错

Error when call API when running simulator

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

我真的很纳闷这个错误。由于代码可以编译并与提供的静态库正确链接,这意味着应该提供 API。那么错误提示是什么?

如有任何建议或建议,我们将不胜感激。提前致谢

我遇到了完全相同的问题。我在 64 位 Ubuntu 上 运行ning 并且可以正常编译,但是当我 运行 时,我得到了上面相同的错误。当我 运行 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)