저는 최근에 오픈 소스 C++ 프로젝트에 기여하기를 원했습니다. C++에 대한 경험이 부족한 나는 Visual Studio를 IDE로 선택하고 SP1로 업데이트했습니다. 비교적 쉽게 빌드 할 수있는 솔루션을 얻었으며 개요를보기 위해 코드를 조금 탐색하려고했습니다."정의로 이동"/ "선언으로 이동"이 VS2010에서 안정적으로 작동하지 않습니까?
"정의로 이동"/ "선언으로 이동"이 작동하지 않는 것으로 나타났습니다. 두 옵션 모두 소스 코드의 심볼을 마우스 오른쪽 버튼으로 클릭 할 때 사용할 수 있습니다. 그러나 헤더 파일에있을 때 "정의로 이동"은 관련 함수에 대한 선언으로 다시 이동합니다. 그리고 .cc 파일에있을 때, 나는 항상 같은 파일의 정의로 이동합니다. 일부 기능에 대한
1), I는 헤더 파일에서 정의를 탐색 할 수 있지만, 다른 방향은
을 분류됩니다나는이 우려하는 기능에 대해 알아 차렸다 좀 더 일
은2) 정의가 완전히 일치하도록 선언이 변경되면 일부 기능에 대한 탐색을 수정할 수 있습니다 (예 :
header declaration:
void buche(sint64 betrag, player_cost type);
source definition:
void karte_t::buche(sint64 const betrag, player_cost const type)
변화
에header declaration:
void buche(sint64 const betrag, player_cost const type);
-> 탐색은 소스 파일에 관련된 기능, 상단의 범위 메뉴의 코드 블록으로 클릭 양방향
3
) 작동 오른쪽 화살표 (생각하는 앞선 선언의 상징 인)와 클래스 이름 (이 함수는 반드시 클래스 멤버입니다)을 표시하는 대신 "(Global Scope)"로 변경합니다.나는 많은 것을 둘러 보았는데 이것은 비교적 잘 알려진 문제인 것 같다. 사이트에 스레드가 있습니다 : How to get IntelliSense to reliably work in Visual Studio 2008
또한 Microsoft 포럼 (두 개의 하이퍼 링크 만 게시 할 수 있기 때문에 연결할 수 없습니다)에서 여러 스레드를 발견했지만 버그 또는 무언가에 대한 공식 확인이 없습니다. .
답장의 본질은 .ncb 파일 (VS2010의 .sdf 데이터베이스로 대체 됨)을 삭제해야하며, 솔루션을로드 할 때 데이터베이스를 다시 작성하는 옵션을 사용해야한다는 것입니다. . 나는 그 모든 것을 여러 번했는데 아무 소용이 없었다. Stackoverflow의 스레드에 대한 가장 높은 평가를받은 답은 단순히 Intellisense의 버그 (코드 탐색을 담당하는이 자동 완성 구성 요소라는 것을 알았습니까?)에 버그가 있다는 것을 의미하는 것으로 보입니다. 대신 Visual Assist을 사용하십시오. 그러나 VS2008에 관한 질문이 있었고 VS2010을 가리키는 답변이 하나있었습니다. 또 다른 회신은 재귀 참조를 비난했다. 그러나 나는 모든 파일 (확실히 문제를 확인하고 발견 한 몇 안되는 것들)이 경비원을 포함하고 있기 때문에이 프로젝트에서 문제가되지 않을 것이라고 생각한다. 또한 그 프로젝트의 한 코더가 똑같은 문제가 있다는 것을 나에게 확인시켜 주었다. 그러나 나는 비주얼 어시 스턴스에 돈을 쓰는 것에별로 신경 쓰지 않는다. 조금 취미 일 뿐이다 ...
이클립스/자바에 많은 경험을 쌓은 나에게는 그와 같은 상대적으로 필수적인 것 IDE의 기능이 안정적으로 작동하지 않습니다. 물론 정적 코드 분석이 Java보다 C++에서 훨씬 더 어렵다는 것을 이해할 수 있습니다. 그러나 Visual Studio는 많은 개발주기를 거친 상용 제품입니다.
이 게시물을 요약하면 이는 불가 피한 버그입니까?
게시 한 기사 : VS 2008에서 안정적으로 작동하도록 intellisense를 얻는 방법이 저에게 도움이되었습니다. VS 솔루션을 닫고 솔루션의 SDF 파일을 삭제하고 솔루션을 다시 연 다음 솔루션을 다시 빌드하고 문제를 해결합니다. – John