2014-09-17 1 views
2

내가 파일에서 오류ls.cc 파일에 오류가 있습니까?

를 follwing을 얻고 설치하는 동안은

Ns를 실패 만든다

linkstate/ls.cc:67:0:

linkstate/ls.h: In instantiation of ‘void LsMap<Key, T>::eraseAll() [with Key = int; T = LsIdSeq]’: 
linkstate/ls.cc:396:28: required from here 
linkstate/ls.h:137:58: error: ‘erase’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] 
    void eraseAll() { erase(baseMap::begin(), baseMap::end()); } 
                 ^
linkstate/ls.h:137:58: note: declarations in dependent base ‘std::map<int, LsIdSeq, std::less<int>, std::allocator<std::pair<const int, LsIdSeq> > >’ are not found by unqualified lookup 
linkstate/ls.h:137:58: note: use ‘this->erase’ instead 

make: *** [linkstate/ls.o] Error 1에서 포함!

NS2 프로젝트를 진행 중입니다. 설치시 큰 타격을 받았습니다.

답변

1

간단합니다. linkstate/ls.h : 137 : 58 파일에서 "지우기"를 "this-> erase"로 변경해야합니다. 그런 다음 다시 설치하십시오.

3

ns-2.xx/linkstate 디렉토리에 ls.cc 파일을 엽니 다 (제 경우에는 ls.h였습니다). 즉, 137 번째 줄을 변경하십시오.

void eraseAll() { erase(baseMap::begin(), baseMap::end()); } 

에서

void eraseAll() {baseMap::erase(baseMap::begin(), baseMap::end()); } 
+0

에 다음과 같이 나는이 솔루션을 선호 : '이'대신베이스 맵을 사용하여 (즉,도 빌드 출력에 의해 제안)이 상황에서 더 나은 보인다. –

관련 문제