I am using one software framework downloaded from data prefetching championship (http://www.jilp.org/dpc/prefetching_framework_description.html). Everything works fine but every time when I tried to call the API the framwork provided the system throws out some error. For example, in interface.h file, it provides one API: void SetPrefetchBit( UINT32 level, CacheAddr_t addr ); I call it in my codes. The codes could be compiled and linked successfully. But when I run the code, it throw out the error: PREF_KIT/runs/../pin/intel64/bin/pinbin: symbol lookup error:/PREF_KIT/runs/../bin/CMPsim.usetrace: undefined symbol: _Z14SetPrefetchBitjy
I am really puzzled about the error. Since the codes could be compiled and linked with the provided static lib correctly which means the API should be provided. Then what the error indicates?
Any suggestion or recommendation is appreciated. Thanks in advance
I'm having the same exact issue. I'm running on 64 bit Ubuntu and can compile fine but when I run I get the same error above. When I run nm using the following command:
nm libCMPsim64.a | c++filt | grep GetPrefetch
I get that there is an undefined reference in the library itself...
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)