2015-01-14 3 views
0

데이터 프리 패치 챔피언십 (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 : undefined symbol : _Z14SetPrefetchBitjy시뮬레이터를 실행할 때 API를 호출 할 때 오류가 발생했습니다.

나는 정말로 오류에 의아해하고있다. 코드가 컴파일되고 제공되는 정적 라이브러리와 올바르게 링크 될 수 있기 때문에 API가 제공되어야 함을 의미합니다. 그러면 오류가 나타내는 것은 무엇입니까?

제안이나 권장 사항에 만족합니다. 미리 감사드립니다.

답변

0

동일한 정확한 문제가 있습니다. 64 비트 우분투에서 실행 중이며 잘 컴파일 할 수 있지만 실행하면 위에 같은 오류가 발생합니다. 내가 나노를 실행하면 다음 명령을 사용하여 : 나는 라이브러리 자체에 정의되지 않은 참조가 있음을 얻을

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) 
+0

예를 발견 한 곳이다 내가 생각하는 문제 :) GetPrefetchBit 함수의 선언을 라이브러리에서 본 것으로 변경하면 문제를 해결할 수 있습니다 – user3312479

관련 문제