프로그래밍 영역을 Linux로 확장하고 싶습니다. 훌륭하고 신뢰할 수있는 기본 툴셋이 중요하며 IDE보다 더 기본적인 것은 무엇입니까?
이러한 SO 주제를 찾을 수 있습니다.
가벼운 IDE를 찾고 있지 않습니다 . IDE가 그만한 가치가 있다면, 나는 그것을 지불 할 것이기 때문에 무료 일 필요는 없다.
내 질문은 다음과 같습니다.
Linux에서 사용할 수있는 좋은 C ++ 프로그래밍 IDE는 무엇입니까?
구문 강조, 코드 완성 (예 : 인텔리전스 또는 이클립스 대응) 및 통합 디버깅 (예 : 기본 중단 점) 등의 표준이 매우 표준 입니다.
나는 그것을 직접 검색했지만 너무나 많은 것들이 있기 때문에, 특히 Linux에서 C ++ 코딩 경험이 거의없는 나와 같은 누군가를 위해 선과 악을 손으로 분리하는 것이 거의 불가능합니다. Eclipse가 C ++을 지원 한다는 것을 알고 있으며 Java 용 IDE를 정말로 좋아하지만 C ++에는 좋으며 더 좋은 것이 있습니까?
두 번째 게시물에는 실제로 몇 가지 좋은 제안이 있지만 누락 된 것은 실제로 sugested IDE를 사용자에게 너무 좋게 만드는 것입니다. 장점은 무엇입니까?
어쩌면 내 질문은 다음과 같아야합니다.
어떤 IDE를 제안하고 (경험을 얻었습니까) 그 이유는 무엇입니까?
답변
처음에 : 혼란
이 답변을 처음 쓸 때 최근에 Visual Studio (수년간의 경험을 가진)에서 Linux로 전환했으며 가장 먼저 합리적인 IDE를 찾으려고 노력했습니다. 당시에는 불가능했습니다. 좋은 IDE가 없었습니다.
주현절 : UNIX는 IDE입니다. 그것의 모든. 1
그런 다음 Linux의 IDE가 도구가있는 명령 줄임을 깨달았습니다.
- 먼저 쉘을 설정합니다
- 내 경우에는 배쉬지만 많은 사람들이 선호한다
- 물고기 또는
- (오 나의) Zsh ;
- 그리고 당신의 편집인; 독을 선택하십시오 – 둘 다 최첨단입니다 :
필요에 따라 편집기를 훌륭하게 작동시키기 위해 여러 플러그인을 설치하고 구성해야합니다 (성가신 부분). 예를 들어 Vim의 대부분의 프로그래머 는 스마트 자동 완성을위한 YouCompleteMe 플러그인의 혜택을 받습니다 .
완료되면 셸은 디버거 (gdb), 프로파일 러 (gprof, valgrind) 등과 같은 다양한 도구와 상호 작용하기위한 명령 인터페이스입니다. Make , CMake , SnakeMake 또는 다양한 도구를 사용하여 프로젝트 / 빌드 환경을 설정합니다 대안. 또한 버전 제어 시스템으로 코드를 관리합니다 (대부분의 사람들은 Git 사용 ). 또한 tmux (이전에는 screen)를 사용하여 다중화 (= 다중 창 / 탭 / 패널 생각)하고 터미널 세션을 지속시킵니다.
요점은 쉘과 몇 가지 도구 작성 규칙으로 인해 서로 통합 된다는 것 입니다. 그런 식 으로 Linux 쉘은 다른 최신 IDE와 완전히 동등한 진정한 통합 개발 환경 입니다. (이것은 개별 IDE에 명령 줄에 부족한 기능이 없다는 것을 의미하지는 않지만 그 반대의 경우도 마찬가지입니다.)
각자 자신에게
습관에 들어간 후에는 위의 워크 플로가 얼마나 잘 작동하는지 말할 수 없습니다. 그러나 일부 사람들은 단순히 그래픽 편집기를 선호하며,이 답변이 처음 작성된 이후 몇 년 동안 Linux는 여러 가지 프로그래밍 언어에 대한 우수한 그래픽 IDE 제품군을 얻었습니다 (그러나 C ++에 대해서는 아는 바가 없습니다). 나와 같은 경우에도 사용하지 않더라도 시도해보십시오. 다음은 작고 치우친 선택입니다.
- 파이썬 개발에는 PyCharm이 있습니다.
- R에는 RStudio가 있습니다
- JavaScript 및 TypeScript에는 Visual Studio Code 가 있습니다 (이는 또한 훌륭한 만능 편집기입니다)
- 마지막으로 많은 사람들 이 일반적인 코드 편집을 위해 Sublime Text 편집기 를 좋아합니다 .
이 목록은 완전하지 않습니다.
1 나는 dsm의 의견에서 그 제목을 훔쳤다.
2 여기 Vim을 언급했습니다. 그리고 평범한 Vim은 여전히 능력 이상이지만 Neovim은 유망한 재시작이며, 오래된 사마귀가 현대화되었습니다.
답변
내가 가장 좋아하는 것은 CodeLite 2.x IDE입니다.
CodeLite를 사용하기로 결정한 것은 다음 Linux 용 C ++ IDE에 관한 연구를 기반으로 한 것입니다.
- CDT 플러그인이있는 Eclipse Galileo
- NetBeans 6.7 (SunStudio IDE의 기본이기도 함)
- KDevelop4
- 코드 블록 8.02
- CodeLite 2.x
결국 CodeLite 2.x 를 사용하기로 결정했습니다 .
아래에 언급 된 C ++ IDE와 관련된 장단점이 나와 있습니다. 이것은 내 개인적인 의견만을 반영한다는 점에 유의하십시오!
편집 : SOF가 테이블을 지원하지 않는 것이 유감이므로 단락에 작성해야합니다 …
CDT 플러그인이있는 Eclipse Galileo
장점 :
- 합리적인 빠른
- Java, Perl도 지원합니다 (EPIC 플러그인 사용)
- 일반적으로 사용되고 잘 유지
- 다른 OS 버전에서도 사용 가능 (Windows, MacOS, Solaris, AIX (?))
단점 :
- GUI는 매우 혼란스럽고 다소 일관성이 없습니다. 전혀 직관적이지 않습니다.
- 무거운 무게
- CVS (AFAIK) 만 지원
NetBeans 6.7 (이것은 SunStudio IDE의 기본이기도합니다)
장점 :
- 내가 본 가장 직관적 인 GUI 중 하나
- Java, Python, Ruby도 지원
- CVS, SVN, Mercurial 통합
- 일반적으로 사용되고 잘 유지
- 다른 OS 버전 (Windows, MacOS, Solaris)에도 사용 가능
단점 :
- 극도로 느린
- 무거운 무게
- 들여 쓰기를 위해 공백을 사용하며, 이는 내 작업의 정책이 아닙니다. 이것이 구성 가능한지 확신하지만 그 방법을 찾을 수 없었습니다.
KDevelop4 (참고 : 나는 그것에 대해 많은 테스트를하지 않았다)
장점 :
- 리눅스에서 일반적으로 사용
- CVS, SVN, Mercurial 통합
단점 :
- GUI는 다소 구식으로 보입니다.
- 무거운 무게
- KDE 환경에 매우 적합
CodeBlocks 8.02 (참고 : 테스트를 많이하지 않았습니다)
장점 :
- 합리적인 빠른
단점 :
- GUI는 다소 구식으로 보입니다 (시작 화면은 훌륭하지만)
- 편집기의 글꼴이 매우 작습니다
- 일부 아이콘 (예 : 디버거 관련 아이콘 시작 / 스테핑)은 매우 작습니다.
- 소스 제어 통합이 없음
CodeLite 2.x (참고 : 이것은 제가 개인적으로 가장 좋아하는 것입니다)
장점 :
- 내가 리눅스에서 본 최고의 현대적이고 직관적 인 GUI
- 경량
- 합리적인 빠른
- SVN 통합
- 다른 OS 버전에서도 사용 가능 (Windows, MacOS, Solaris (?))
단점 :
- CVS 통합 불필요 (직장에서 사용해야하므로 중요합니다)
- Java, Perl, Python을 지원하지 않습니다.
답변
곧 IDE가 충분하지 않다는 것을 알게 될 것입니다. 어쨌든 GCC 툴체인을 배워야합니다 (적어도 기본 기능을 배우는 것은 어렵지 않습니다). 그러나 IDE, IMO의 과도 통증을 줄이는 데 아무런 해가 없습니다.
답변
이 주제에 약간의 지식을 추가하기위한 빠른 답변 : NetBeans를
반드시 확인해야합니다 . Netbeans 6.7에는 다음과 같은 기능이 있습니다.
- C / C ++ 프로젝트 및 템플릿 : 구문 강조, 자동 코드 완성, 자동 들여 쓰기를 지원합니다.
- C / C ++ 디버거가 있습니다
- 컴파일러 구성, 구성 관리자 및 Makefile 지원 (마법사 사용)을 지원합니다.
- 클래스 창, 사용 창 및 파일 탐색 창 (또는 패널)이 있습니다.
- 매크로 확장보기 , 또한 툴팁 .
- QT 개발 지원 .
나는 그것이 완벽한 (그리고 훨씬 더 나은) Visual Studio 대체이며 C / C ++을 배우는 매우 좋은 도구라고 생각합니다.
행운을 빕니다!
답변
적어도 Qt 특정 프로젝트의 경우 Nokia / Trolltech / Digia 의 Qt Creator 는 큰 가능성을 보여줍니다.
답변
어떻게해야했는지, 무엇을 바꿔야하는지 좀 더 명확하게 설명해 주시겠습니까? 아마도 당신이 사용한 정보에 대한 링크를 제공하여 올바른 방향으로 나를 가리킬 수 있습니다.
첫 번째 소스는 실제로 도구 man
페이지였습니다. 그냥 입력
$ man toolname
명령 행에서 ( $
여기서는 입력이 아니라 프롬프트의 일부입니다).
플랫폼에 따라 상당히 잘 작성되어 있으며 인터넷에서도 찾을 수 있습니다. 의 경우 make
실제로 몇 시간이 걸리는 전체 설명서 를 읽었습니다 . 실제로, 이것이 대부분의 경우에 이것이 필요하거나 도움이되지 않는다고 생각하지만 Linux에서 처음으로 할당 할 때 정교한 makefile이 필요한 몇 가지 특별한 요구 사항이있었습니다. makefile을 작성한 후 나는 약간의 수정과 수정을 한 경험이 풍부한 동료에게 주었다. 그 후, 나는 거의 알았습니다 make
.
나는 GVIM을 사용했는데, 거기에 약간의 사전 경험이 있었기 때문에 Emacs 또는 대안에 대해 전혀 말할 수 없습니다. 다른 사람들의 .gvimrc
구성 파일 을 읽는 것이 실제로 도움이된다는 것을 알았습니다 . 많은 사람들이 웹에 올려 놓습니다. 여기 내 .
모든 binutils를 한 번에 마스터하지 마십시오. 너무 많은 기능이 있습니다. 그러나 앞으로 개요가 필요할 때 검색 할 위치를 알 수 있도록 일반적인 개요를 얻으십시오. 당신은 해야 하지만, 모든 중요한 매개 변수를 알아야 g++
하고 ld
(명시 적으로 방지하는 경우를 제외하고 자동으로 호출 년대 GCC의 링커 도구).
또한 궁금한 점이 있습니다. 코딩 할 때 코드 완성과 구문 강조 표시가 있습니까?
구문 강조 : 예. Visual Studio보다 훨씬 좋습니다. 코드 완성 : yes- ish . 먼저 Visual Studio에서도 VB 및 C #과 비교하여 C ++ 코드 완성 기능을 사용하지 않았다는 점을 인정해야합니다. 지금은 자주 사용하지 않지만 그럼에도 불구하고 GVIM 에는 C ++에 대한 기본 코드 완성 지원이 있습니다. 과 결합 ctags를의 라이브러리와 플러그인과 같은 taglist 이 거의 IDE입니다.
실제로, 제가 시작한 것은 Armin Ronacher 의 기사 였습니다. 텍스트를 읽기 전에 끝 부분의 스크린 샷을보십시오!
(구문) 오류가 발생하기 전에 먼저 컴파일해야합니까?
예. 그러나 이것은 Visual Studio와 동일합니다. 그렇지 않습니다 (전체 토마토를 사용한 적이 없습니다)? 물론 구문 강조 표시는 일치하지 않는 대괄호를 표시하지만 그게 전부입니다.
그리고 어떻게 브레이크 포인트를 생각하고 디버깅합니까?
나는 gdb
명령 줄 도구를 사용합니다. 라는 그래픽 프론트 엔드도 있습니다 DDD
. gdb
최신 디버깅 도구이며 IDE에서 할 수있는 모든 작업을 수행 할 수 있습니다. 실제로 성가신 것은 스택 추적을 읽는 것입니다. 줄이 들여 쓰거나 형식화되어 있지 않기 때문에 많은 템플릿을 사용할 때 정보를 스캔하기가 어렵습니다 (내가하는 일). 그러나 이들은 IDE에서 스택 추적을 복잡하게 만듭니다.
내가 말했듯이, 나는 고등학교에서 Windows 메모장과 커맨드 라인 자바 컴파일러를 사용하여 Java 프로그래밍 언어의 첫 단계를 설정하는 ‘즐거움’을 가졌습니다. 확실히 다른 프로그래밍 과정과 비교할 수 있었을 때 나는 당시 IDE가 좋았던 곳이었습니다.
Emacs 또는 GVIM과 같은 최신 기능의 편집기를 메모장과 비교하려고 시도해서는 안됩니다. 메모장은 꾸며진 TextBox
컨트롤이며 이로 인해 모든 것이 달라집니다. 또한 명령 줄 작업은 Linux와 Windows에서 매우 다른 경험입니다. Windows cmd.exe
가 심하게 손상되었습니다. PowerShell이 훨씬 좋습니다.
/ 편집 : GVIM에 탭 편집이 있음을 명시 적으로 언급해야합니다 (탭 대 공백이 아닌 탭 브라우징에서와 같이)! 그것들이 전혀 숨겨져 있지는 않지만 그것들을 찾는 데는 오랜 시간이 걸렸습니다. 파일을 열거 나 새 파일을 만들 때 :tabe
일반 대신 입력 :e
하면 GVIM이 새 탭을 만듭니다. 커서 또는 플랫폼에 따라 여러 가지 바로 가기를 사용하여 탭 간을 전환 할 수 있습니다. 키 gt
(유형 g, t명령 모드)는 모든 곳에서 작동해야하며 다음 탭 또는 탭 번호로 이동합니다. 숫자가 주어진 경우 n . :help gt
도움을 받으려면 입력하십시오 .
답변
대답을 반복하지는 않지만 조금 더 추가 할 수 있다고 생각합니다.
Slickedit 는 훌륭한 IDE입니다.
속도를 늦추거나 모든 시간 인덱싱을하지 않고 큰 코드베이스를 잘 지원합니다. (이것은 일식의 cdt와 관련된 문제입니다). Slickedit의 속도는 실제로 가장 좋은 것입니다.
코드 완성은 잘 작동하며 자동 서식, 미화 및 리팩토링과 같은 많은 옵션이 있습니다.
통합 디버깅이 있습니다.
플러그인 지원과 상당히 활발한 커뮤니티가 있습니다.
이론적으로는 전통적인 메이크 파일 작업을 수행하는 사람들과 직접 통합 할 수 있어야합니다. 프로젝트에서 직접 프로젝트를 만들 수는 있지만 시도했을 때 마음에 들었던 것처럼 원활하게 작동하지 않았습니다.
Linux 이외에도 필요한 경우 Mac 및 Windows 버전이 있습니다.