2011-11-03 3 views
3

그래서 emacs로 전환하는 과정에서 Visual Studio 2010 for C++을 사용하는 것이 매우 어렵습니다. 이맥스 (emacs)를위한 설치 고 (cedet)를 시도하는 것이 더 쉬운 것은 아닙니다. 그래서 알렉스 오트로 부드러운 도입을 사용하고 내 init 파일이 제공하는 것과 비슷합니다Emacs CEDET semantic completions "...에 대한 유형을 찾을 수 없습니다"

(load-file "~/.emacs.d/plugins/cedet/common/cedet.el") 
(global-ede-mode 1)  
(semantic-load-enable-excessive-code-helpers) 
(require 'semanticdb) 
(global-semanticdb-minor-mode 1) 
(setq semantic-ectag-program "C:/devel/ctags/ctags58/ctags.exe") 
(semantic-load-enable-secondary-exuberent-ctags-support) 
(require 'semantic-ia) 
(require 'semantic-gcc) 
(setq-mode-local c-mode semanticdb-find-default-throttle 
          '(local unloaded system recursive)) 
(ede-enable-generic-projects) 
(global-srecode-minor-mode 1) 

모든 좋은 멋쟁이하지만 헤더 (array_loader.h)에가있는 CPP 파일을 열려고하면 나는 " 'array_loader 알'에 대한 유형을 찾을 수 없습니다"얻을

array_loader al; al.register_reader(); 

: 같은 디렉토리() 메소드 register_reader에 대한 코드 완성을하려고합니다. 역설적으로 자동 완성 모드는 원활하게 작동합니다. 그들이 방해합니까?

방금 ​​바자를 사용하여 1.1 베타를 체크 아웃 한 다음 바이트를 컴파일했습니다. 모든 프로젝트가 cmake 기반이고 include 파일을위한 단일 경로가 없으므로 프로젝트를 설정하지 않았습니다. 내 프로젝트의 각 하위 라이브러리에는 동일한 디렉토리에 헤더가 있습니다. CMakeLists.txt를 파싱하고 해당 정보를 ede 또는 semantic에 제공하는 방법이 있습니까? 이 기본 예제가 없다하더라도 작동해야합니다. 내가 뭔가 잘못하고 있는거야?

https://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el

이 또한 내 cmake 프로젝트를 정의하고 재귀를 사용 : 사람이 다시이 문제가 잘 경우

답변

3

, 나는 알렉스 오트로 표시된 바와 같이 내 cedet 초기화 파일을 설정하여 그것을 해결하기 위해 관리 내 cmake 프로젝트 폴더를 통해 헤더를 찾으십시오. 프로젝트 외부의 cpp 파일이 같은 폴더에있는 헤더에 정의되었지만 클래스/메소드의 서명을 찾을 수 없다는 것은 여전히 ​​이상합니다. semanticcdb 스로틀은 다음과 같이 설정되었습니다.

(setq-mode-local cpp-mode semanticdb-find-default-throttle 
         '(project local unloaded system recursive))