C 개발을위한 편리하고 생산적인 개발 환경 설정에 대한 아이디어를 찾고 있습니다. Vim을 사용한 C 편집이 매우 유용 하다는 것을 알았지 만 제안을 더 넓게 샘플링하고 싶습니다.
C 개발을위한 편리하고 생산적인 개발 환경 설정에 대한 아이디어를 찾고 있습니다. Vim을 사용한 C 편집이 매우 유용 하다는 것을 알았지 만 제안을 더 넓게 샘플링하고 싶습니다.
답변:
Emacs / Vim / Eclipse / ...-개인적으로 저는 Emacs 사용자입니다. 제어 시퀀스가 새끼 손가락을 피로하게하는 경우 Viper-Mode를 사용하십시오. Emacs는 유닉스에 잘 통합되어있어 한 곳에서 모든 것을 쉽게 제어 할 수 있습니다. Vim은 여기서도 잘하지만 Elisp은 Vim Script보다 훨씬 강력한 확장 언어입니다. C 개발을 위해 Emacs를 설정하는 모든 방법에 대해 몇 시간 동안 이야기 할 수 있습니다. 플라이 메이크 모드 가 언급되었으며, 사물을 처음 시작합니다. 나는 이클립스에 익숙하지 않다. 코드가 화면에 충분한 공간을 차지하지도 않고 부풀어 오르는 방법을 좋아하지도 않는다 (Vim 사용자는 Emacs에 대해 같은 것을 말할 것이다). 또한 순수한 미학적 이유로 Java로 작성된 모든 것에 부당하게 편향되어 있습니다.
Ctags -Vim 또는 Emacs 또는 파일에서 약간의 하이퍼 텍스트 링크를 수행 할 수 있도록 C (또는 다른 많은 언어) 함수에 태그를 지정합니다. 당신이 돌아 다니면서 기능을 보았을 때 "그것이 또 무엇을합니까? 네이밍은 약간 모호합니다." Plink-plank-plunk, 당신은 그것의 정의로 바로 zap 할 수 있습니다.
Cmake / Gnu-Autotools -Make는 훌륭하지만 어느 시점에서 프로젝트를 테스트 할 방법이없는 모든 종류의 시스템에서 자체 빌드 할 수 있도록 약간 추상화해야합니다. 사람들이 * nix에서 코드를 작성해야하는 경우 Autotools는 훌륭하지만 실제로 Cmake에 익숙해 져야합니다. Cmake 팀은 가능한 모든 구성에서 코드를 작성하고 두통을 겪지 않아도됩니다. 프로젝트를 쉽게 픽업하고 다른 프로젝트를 구매하려면 이러한 도구 중 하나가 중요합니다.
Git / Mercurial / Subversion / ...-버전 제어 소프트웨어를 연구하는 데 몇 개월을 소비 할 수 있지만 Git과 함께 가야합니다. @ $! # % & Linux Kernel을 추적하여 견고하고 배포됩니다. Linus에 충분하다면 충분할 것입니다. 나는 Mercurial에 대해서도 좋은 소식을 듣습니다. G ** gle이 그것들을 사용하는 것 같습니다. 어떤 사람들은 Subversion과 CVS를 좋아하는 것처럼 보입니다. 나는 그들이 모 놀리식이 기 때문에 마음에 들지 않습니다. 매우 불편하고 제한적입니다.
Stumpwm / wmii / XMonad / ...-어떤 시점에서 작업 흐름을 유지하기 위해 할 수있는 일은 출력을 크게 향상시킬 것임을 깨닫게됩니다. 두뇌가 상황을 깨뜨리는 것을 막는 가장 좋은 방법 중 하나는 바둑판 식 키보드 구동 창 관리자로 전환하는 것입니다. 저는 창 관리자의 Emacs 인 StumpWM 의 개인 팬입니다 . 즉시 커스터마이징이 가능한 커먼 리스프 (Common Lisp) 프로세스에서 완벽하게 구현되므로 반복적으로 수행하는 모든 작업을 기능으로 추방하고 명령에 바인딩 할 수 있습니다. 좋은 물건. 나는 다른 것들에 대해 많이 알지 못하지만 더 많은 정교함이 다른 스레드에 더 잘 남을 것입니다. 키보드를 가능한 한 많이 사용하십시오.
GDB- 다른 디버거에 익숙하지 않지만 사실상의 표준으로 보입니다.
Valgrind- 나는 이것이 잘하는 다른 일을 모른다. Valgrind는 성가신 프로파일 링 / 메모리 누수 사냥에 중요한 요소입니다. Valgrind가 없으면 malloc / calloc으로 코드를 작성할 수 없습니다.
개인 취향이 매우 뛰어나서 내가 무엇을 사용하는지 알려주는 것 이상을 할 수 있다고 생각하지 않습니다. Emacs는 Flymake 모드로 설정되어 있습니다.이 모드 는 작업중 인 파일을 주기적으로 컴파일하고 컴파일러 출력을 구문 분석하여 어떤 오류가 발생했는지 파악합니다. 버퍼의 오류 / 경고를 강조 표시하고 관련 컴파일러 오류 메시지를 표시합니다.
G ++ / GCC와 함께 작동하는 Netbeans C / C ++ 패키지를 사용할 수 있습니다.
콘솔에서 Vim으로 C를 편집합니다. 나는 makefile을 사용하고 gcc, clang (LLVM) 및 icc를 포함하여 코드를 테스트하기 위해 많은 컴파일러를 가지고 있습니다. 개발 환경에서 고려해야 할 다른 것 : grep, 디버거 및 valgrind 사용. 보다 복잡한 빌드를위한 스크립팅 언어입니다. 버전 관리를위한 Git
코드를 편집하는 데 사용하는 것보다 내 마음에 더 중요한 것은 코드를 구성하는 방법입니다. 그것을 배치하는 방법은 아마도 스택 오버플로에 대한 질문 일 것입니다. 그러나 요청에 따라 배포 용이 아닌 객체 코드에 대한 별도의 디렉토리와 결과 binar (y | ies)에 대한 다른 폴더가 종종 있습니다. 필자는 작성중인 모든 일반 코드와 최종 프로젝트 파일과 함께 사용되는 더 많은 C 파일을 포함하는 테스트 폴더가 있습니다.