运行 模拟器调用 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)
我正在使用从数据预取锦标赛 (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)