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

C++ 运行模拟器时调用API时出错,c++,simulator,prefetch,C++,Simulator,Prefetch,我正在使用一个从数据预取锦标赛()下载的软件框架。一切正常,但每次我试图调用API时,框架都会抛出一些错误。 例如,在interface.h文件中,它提供了一个API: void SetPrefetchBit(UINT32级,CacheAddr\u t addr); 我用我的密码叫它。代码可以成功编译和链接。但当我运行代码时,它抛出了错误: PREF_KIT/runs/。/pin/intel64/bin/pinbin:符号查找错误:/PREF_KIT/runs/。/bin/CMPsim.uset

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

我真的对这个错误感到困惑。因为代码可以被编译并与提供的静态库正确链接,这意味着应该提供API。那么错误表明了什么


欢迎提出任何建议或建议。提前谢谢

我也有同样的问题。我在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)

是的,您已经找到了问题所在,我认为:)您可以通过将函数GetPrefetchBit的声明更改为您在库中看到的内容来解决问题