우분투에서 make하다가 이런 error: no matching function for call to 에러가

나왔습니다.
어떻게든 해보려고 하는데, 프로그레밍 완전 초보라서 읽어도 무슨 말인지 모르겠어요

// called when elaboration is done

template <class T>
inline
void
sc_inout<T>::end_of_elaboration()
{
if( m_init_val != 0 ) {
write( m_init_val );
delete m_init_val;
m_init_val = 0;
}
if( m_traces != 0 ) {
for( int i = 0; i < (int)m_traces->size(); ++ i ) {
sc_trace_params
p = (m_traces)[i];
in_if_type
iface = DCAST<in_if_type*>( this->get_interface() );
sc_trace( p-> tf, iface-> read(),p->name); // 이부분에 에러 발생
}
remove_traces();
}
}

error: no matching function for call to ‘sc_trace(sc_core::sc_trace_file*&, const State2IF&, std::string&)’
왜 메칭이 안되는지 한참을 쳐다봐도 모르겠어요…

여기는 개발자 사이트가 아니라서 대답은 안해주실것 같은데…
다음부턴 다른 곳에 올려보세요…

참고로 멤버함수 인자로 포인터 참조를 하시는 것 같은데요…

sc_trace(sc_core::sc_trace_file*&, const State2IF&, std::string&) 에서

[code:2t86o3s6]
void func(int *(&ptr_ref_variable))
{
...
}
[/code:2t86o3s6]

이런 형태로 괄호를 제대로 작성하셨는지 살펴보세요.
확인은 안해봤지만…
아마 이 부분이 컴파일러마다 틀릴수도 있습니다.

C++이나 Java와 같이 함수오버로딩이 되는 언어에서…
같은 이름의 함수라도 매개변수의 유형이나 갯수에 따라 다른 함수로 인식합니다.

함수가 있음에도 "그런 함수를 찾을 수 없다"고 나온다면…
매개변수의 유형이나 갯수가 똑같은 함수가 정의되지 않은 겁니다.

이 문제를 해결하기 위해선 strace함수의 선언부분을 참조하시고,
매개변수로 넘긴 데이터의 유형과 비교해보세요.
캐스팅이 필요할 수 있습니다.