문제

나는 makefile을 사용하여 구축 된 C 프로젝트를 가지고 있으며, Eclipse는 "유효하지 않은 프로젝트 경로 : 중복 경로 항목"에 대해 끊임없이 경고하지만, 내가 원하는 것이 무엇인지 알 수는 없습니다. 이 경고를 비활성화하고 내 인생을 계속하고 싶습니다.

내 응용 프로그램은이 경고를 제외하고는 단일 경고가 아닌 컴파일하고 잘 실행됩니다. 양심적 인 개발자이기 때문에 나는이 문제를 해결하고 싶어서 깨끗한 빌드 만 가져올 수있는 따뜻한 퍼지를 갖추고 있습니다.

도움이 되었습니까?

해결책

이것은 Eclipse 3.7.2 및 CDT 8.0.2와 함께 저에게 효과가있었습니다.

  1. 프로젝트 속성을 엽니 다 | C/C ++ 빌드 | 발견 옵션.
  2. 명확한 발견 된 항목으로 버튼을 클릭하십시오.
  3. 재건.

CDT 8의 새로운 기능인 것 같습니다. 저는이 "유효하지 않은 프로젝트 경로 : 중복 경로 항목"문제를 몇 년 동안 가지고 있었으며, 이것은 새로 제공된 솔루션입니다.

이 작업을 수행하기 전에 C/C ++ 일반 | 경로와 기호 | 탭 포함. 나는 이것을 제거 할 수 없었다. 표시 내장 값이 확인 될 때만 나타납니다. 따라서 어떻게 든 생성됩니다. 위의 작업을 수행 한 후에는 복제가없는 세트로 교체되었습니다. 유일한 차이점은 어셈블리, GNU C 및 GNU C ++에서 동일한 설정이 나타났다는 것입니다. 이전에는 다른 세트였습니다. 예를 들어, 조립품은 비어있었습니다.

지금까지 문제가 반환되지 않았습니다.

다른 팁

이 문제는 다루기위한 진정한 고통입니다. 잘 작동하지 않습니다.

이것은 Eclipse 3.4.1 / CDT 5.0.1에 적용됩니다

내가 알 수있는 것에서 CDT 내에서 "C/C ++ 프로젝트"를 만들 때 포함 된 경로를 자동으로 감지하려고합니다. 좋은 생각이지만 구현은 끔찍합니다.

디렉토리 이름을 삭제하거나 바꾸면 이전 디렉토리가 남아 있습니다. 프로젝트의 이름을 바꾸면 이전 디렉토리가 남았습니다. Eclipse가 그 이전 디렉토리를 찾을 수 없으면 그 경고를 제공합니다.

내 솔루션은 자동화 된 검색을 완전히 끄고 포함 된 경로를 수동으로 관리하는 것입니다. Ctrl-Click (정의/함수/파일 등으로 자동 개발) 및 #define 블록을 음영 처리하는 경로 포함 경로 목록이 필요합니다. 이 목록에서 인덱스를 구축합니다.

해야 할 일은 다음과 같습니다. 프로젝트 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동하십시오. C/C ++ 빌드로 이동 -> 발견 옵션 "경로 및 기호의 발견 자동화"를 선택 취소하십시오.

이제 C/C ++ 일반 -> 경로 및 기호로 이동하여 포함 된 탭 어셈블리, C 및 C ++ 언어에는 해당 자동으로 발견 된 디렉토리가 포함되어 있습니다. 3 개 언어 모두로 이동하여 모든 것을 삭제하십시오. Makefile을 열고 포함 내용을 해당 언어로 전사하십시오. 프로젝트 이름을 변경하면 여전히 인덱서가 나옵니다. $ {project_name} 및 기타 글로벌은 작동하지 않는 것 같습니다. 문제가있는 경우 "작업 공간"버튼을 사용하여 포함하려는 디렉토리를 찾아보십시오. 항상 작동하는 것처럼 보이지만 수동으로 입력하는 것은 아닙니다. 적용한 다음 OK. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 INDEX-> Rebuild RESART ECLIPSE로 이동하십시오.

이것은 영원히 문제를 해결해야합니다. #define 또는 #ifdef 블록으로 인해 무언가가 부적절하게 음영 처리 될 때마다 파일 목록이 구식이기 때문입니다. #include 라인에서 "해결되지 않은 포함"을 받으면 목록이 구식이라는 것을 알게 될 것입니다.

Doug Schaefer, Google이 색인을 인덱싱하고 이름을 찾아서이 끔찍한 구현을 수정합니다. =))

이 버그 보고서가 내 문제를 돕는 것을 발견했습니다. 나는 일부를 포함하여 경로를 포함 시켰고 오래된 길을 제거 할 수 없었습니다.

나도이 문제를 보았습니다. 오래된 경로는 결코 삭제되지 않습니다. 파일을 수동으로 수정하려면 $ {projectname} .sc 파일을 $ {workspace}/. metadata/.plugins/org.eclipse.cdt.make.core로 이동/삭제해야합니다.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372

Eclipse Luna 및 CDT 8.5 사용

나는 문제를 해결했다

  1. 프로젝트 속성을 엽니 다 | C/C ++ 일반 | 경로와 기호
  2. 소스 위치 탭을 살펴보면 디렉토리로 이름을 바꾸 었으며이 목록에서 업데이트되지 않았습니다.
  3. 재건

여기서 방금 경로를 자동으로 다시 검출하는 또 다른 방법을 찾았습니다.

  1. "작업 공간 설정 -> c/c ++ -> 빌드 -> 설정 -> 발견"열기
  2. "CDT 빌드 인 컴파일러 설정 [샤드]찾기
  3. 오른쪽에서 "항목 청소"및 "재설정"버튼을 클릭하십시오.
  4. 프로젝트를 재건하고 완료하십시오

이것이 도움이되기를 바랍니다.

참조:http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html

CDT의 버그처럼 보입니다.

정말로 그것을 제거하고 싶다면 프로젝트 경로의 공간을 제거해야합니다. 이것은 오류에 대한 검색 결과에서 제안되었습니다. 그래도 작동하지 않으면 .cproject 파일을 열 수 있습니다. 모든 CDT 설정이 거짓말을하고 중복 항목이있는 실제 경로를 확인할 수 있습니다.

Eclipse가 Makefile에서 알아낼 수있는 기호를 수동으로 정의했는지 확인해야합니다. C/C ++ 일반 -> 경로 및 기호에 수동으로 추가 한 기호를 제거하여 수동으로 작성된 MakeFile이있는 프로젝트가 있으며 문제는 문제가 해결되었습니다.

제거 할 필요가 없습니다 .metadata 여러분, 그냥 위치한 모든 경로를 삭제하십시오 C/C ++ 일반 -> 경로와 기호 -> 기호 클릭 Buttom을 사용하여 교체하지만 수동으로 경로를 제공하지 마십시오.

다음은 Eclipse 4.4 (발견 옵션이없는)에 대한 늦은 답변입니다.

프로젝트를 삭제하십시오 infoPath 파일. Eclipse 또는 ADT 플러그인 (어느 것이 확실하지 않음) 재현하고 올바른 경로로 채 웁니다.

프로젝트를 찾을 수 있습니다 infoPath 파일 <Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo.

생각한다 Eclipse 또는 ADT 플러그인은 두 곳에서 새로운 경로를 결정합니다. (1) Eclipse 기본 설정에 따라 설정된 NDK 디렉토리 및 (2) 경로 Application.mk. 이 모든 경로는 일식 아래 "내장"경로가됩니다.

또한 참조하십시오 삭제 된 Android-NDK-R9 설치를 가리키는 내장 C/C ++ 경로를 변경하는 방법은 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top