Linux 용 C ++ IDE? [닫은]


209

프로그래밍 영역을 Linux로 확장하고 싶습니다. 훌륭하고 신뢰할 수있는 기본 툴셋이 중요하며 IDE보다 더 기본적인 것은 무엇입니까?

이러한 SO 주제를 찾을 수 있습니다.

가벼운 IDE를 찾고 있지 않습니다 . IDE가 그만한 가치가 있다면, 나는 그것을 지불 할 것이기 때문에 무료 일 필요는 없다.

내 질문은 다음과 같습니다.

Linux에서 사용할 수있는 좋은 C ++ 프로그래밍 IDE는 무엇입니까?

구문 강조, 코드 완성 (예 : 인텔리전스 또는 이클립스 대응) 및 통합 디버깅 (예 : 기본 중단 점) 등의 표준이 매우 표준 입니다.

나는 그것을 직접 검색했지만 너무나 많은 것들이 있기 때문에, 특히 Linux에서 C ++ 코딩 경험이 거의없는 나와 같은 누군가를 위해 선과 악을 손으로 분리하는 것이 거의 불가능합니다. Eclipse가 C ++을 지원 한다는 것을 알고 있으며 Java 용 IDE를 정말로 좋아하지만 C ++에는 좋으며 더 좋은 것이 있습니까?

두 번째 게시물에는 실제로 몇 가지 좋은 제안이 있지만 누락 된 것은 실제로 sugested IDE를 사용자에게 너무 좋게 만드는 것입니다. 장점은 무엇입니까?

어쩌면 내 질문은 다음과 같아야합니다.

어떤 IDE를 제안하고 (경험을 얻었습니까) 그 이유는 무엇입니까?


1
이것은 제 생각에 네 번째 "Linux에서 어떤 IDE를 사용해야합니까?"라는 질문입니다.
벤 콜린스

아마 당신은 여기에 새로운 질문이 질문은 질문 한 날짜를 보면 ... 또는 가리켜 야
스벤

마지막 릴리스에서 Eclipse는 eclipse.org/linuxtools 를 릴리스 트레인에 통합했습니다. 이 프로젝트는 Linux 전용 도구를 통합하여 Linux에서 Eclipse를보다 완전한 C / C ++ IDE로 만드는 것을 목표로합니다.
Jean Hominal

답변:


259

처음에 : 혼란

이 답변을 처음 쓸 때 최근에 Visual Studio (수년간의 경험을 가진)에서 Linux로 전환했으며 가장 먼저 합리적인 IDE를 찾으려고 노력했습니다. 당시에는 불가능했습니다. 좋은 IDE가 없었습니다.

주현절 : UNIX는 IDE입니다. 그것의 모든. 1

그런 다음 Linux의 IDE가 도구가있는 명령 줄임을 깨달았습니다.

  • 먼저 쉘을 설정합니다
  • 그리고 당신의 편집인; 독을 선택하십시오 – 둘 다 최첨단입니다 :

필요에 따라 편집기를 훌륭하게 작동시키기 위해 여러 플러그인을 설치하고 구성해야합니다 (성가신 부분). 예를 들어 Vim의 대부분의 프로그래머 는 스마트 자동 완성을위한 YouCompleteMe 플러그인의 혜택을 받습니다 .

완료되면 셸은 디버거 (gdb), 프로파일 러 (gprof, valgrind) 등과 같은 다양한 도구와 상호 작용하기위한 명령 인터페이스입니다. Make , CMake , SnakeMake 또는 다양한 도구를 사용하여 프로젝트 / 빌드 환경을 설정합니다 대안. 또한 버전 제어 시스템으로 코드를 관리합니다 (대부분의 사람들은 Git 사용 ). 또한 tmux (이전에는 screen)를 사용하여 다중화 (= 다중 창 / 탭 / 패널 생각)하고 터미널 세션을 지속시킵니다.

요점은 쉘과 몇 가지 도구 작성 규칙으로 인해 서로 통합 된다는 것 입니다. 그런 식 으로 Linux 쉘은 다른 최신 IDE와 완전히 동등한 진정한 통합 개발 환경 입니다. (이것은 개별 IDE에 명령 줄에 부족한 기능이 없다는 것을 의미하지는 않지만 그 반대의 경우도 마찬가지입니다.)

각자 자신에게

습관에 들어간 후에는 위의 워크 플로가 얼마나 잘 작동하는지 말할 수 없습니다. 그러나 일부 사람들은 단순히 그래픽 편집기를 선호하며,이 답변이 처음 작성된 이후 몇 년 동안 Linux는 여러 가지 프로그래밍 언어에 대한 우수한 그래픽 IDE 제품군을 얻었습니다 (그러나 C ++에 대해서는 아는 바가 없습니다). 나와 같은 경우에도 사용하지 않더라도 시도해보십시오. 다음은 작고 치우친 선택입니다.

이 목록은 완전하지 않습니다.


1 나는 dsm의 의견에서 그 제목을 훔쳤다.

2 여기 Vim을 언급했습니다. 그리고 평범한 Vim은 여전히 ​​능력 이상이지만 Neovim은 유망한 재시작이며, 오래된 사마귀가 현대화되었습니다.


223
나는 매우 동의하지 않습니다. 무슨 일을하든 괜찮은 아이디어가 중요합니다. 생산성이 크게 향상됩니다. 코드 블록을 사용하고 VI로 돌아가는 것이 거의 불가능하다는 것을 알았습니다. 나는 Mac, Win 및 Linux로 코딩했으며 Visual Studio가 최고의 IDE라고 생각하지만 코드 블록이 가깝습니다.
DavidG

35
데이비드, 아마도 당신은 IDE가 제공하는 툴체인에서 당신이 잃어버린 것을 정확히 (자신의 대답 ...) 자세히 설명 할 수 있습니다. 내가 말했듯이, 나는 강력한 IDE 배경에서 왔으며 생산성 향상은 당신과 정확히 반대였습니다.
Konrad Rudolph

48
Vim은 어떤 리팩토링 지원을 제공합니까? Eclipse (Linux에서 실행)에서 300 개 장소에서 호출 되더라도 원하는 Java 메소드의 이름을 변경할 수 있습니다. Vim에서 쉽게 할 수 있습니까?
quant_dev 2016 년

25
quant_dev : 리팩토링은 어떤 방식 으로든 소스 코드를 구문 분석해야합니다. 내가 아는 한, VIM 모듈은 그렇게하지 않으므로 귀하의 질문에 대한 답변은 "없음"입니다. 이것이 Java와 같은 IDE 중심 언어에 IDE를 선호하는 이유 중 하나입니다. C ++에 대한 리팩토링 지원 (등)은 어쨌든 매우 적기 때문에 (IDE에서도) C ++에는 적용되지 않습니다.
Konrad Rudolph

11
@ hasen : 아, 그러나 그것의 큰 부분은 할 수 있습니다 . 예를 들어, 범위 인식 이름 변경 그리고 믿어, 이것이 크다 . 그리고 예를 들어 Ecplise 는 많은 작업을 절약 할 수 있습니다.
Konrad Rudolph

86

내가 가장 좋아하는 것은 CodeLite 2.x IDE입니다.

참조 : http://www.codelite.org

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을 지원하지 않습니다.

14
Eclispe는 플러그인을 통해 Hg, Git, SVN 등을 지원합니다. 그리고 시작 / 스플래쉬 스크린은 엄청난 공을 빨아들입니다. 그들은 자원을 빨아 들이고 혜택을 거의 제공하지 않습니다. 그리고 일반적으로 앱이로드 될 때까지 내가 작업중 인 모든 것 앞에 나타납니다. PortableApp과 Eclipse는 제거해야합니다.
Chris K

4
Codelite는 디버깅을 위해 Visual Studio와 동일한 키보드 단축키를 사용하여 시각적 중독자에게 매우 사용자 친화적입니다.
라울 슈퍼 콥터

여기서 오래된 말을 꺾을지도 모르지만 IMO 이클립스의 GUI는 실제로는 비교할 수 없습니다. 예, 처음에는 배우기가 어렵지만 가파른 학습 곡선을 오르고 생산성이 급상승하는 Vi와 비슷합니다. 요점을 증명하려면 Eclipse IMO의 가장 멋진 기능 중 하나 인 Ctrl + 3을 누르십시오.
kizzx2

"단점 : 들여 쓰기를 위해 공백을 사용합니다. 그것은 당신이 실제로 공구에 익숙하지 않았 음을 보여줍니다. 그렇지 않으면 결국 옵션을 찾았을 것입니다.
Johan Boulé

5
CodeLite는 dentyne ice gum을 씹는 것과 같이 놀랍습니다. 입안에 신선하고 민트 맛을 남길 것입니다. 이클립스는 기능적이지만 사용시 맛에 따라 구토를 제공합니다. 나는 이것이 유치하게 들린다는 것을 알고 있지만, 그것을 사용하는 "느낌"을 설명하는 데 가장 좋은 은유입니다. 나는 다른 사람들이 저에게 동의 할 것이라고 확신합니다.
Didier A.

75
  1. 코드 :: 블록
  2. 이클립스 CDT

곧 IDE가 충분하지 않다는 것을 알게 될 것입니다. 어쨌든 GCC 툴체인을 배워야합니다 (적어도 기본 기능을 배우는 것은 어렵지 않습니다). 그러나 IDE, IMO의 과도 통증을 줄이는 데 아무런 해가 없습니다.


코드 블록 +1, 그리고 적어도 쉘에서 프로그램을 컴파일하고 실행하는 방법을 배우고 싶을 것입니다.
Earlz

이클립스는 모든 경량 이럴에서 코드 :: 블록 ... 그냥입니다
rubenvb

7
코드 블록의 경우 -1입니다. 일식의 경우 -1입니다. 그들은 디버깅 중에 UI를 변경합니다. 초보자 사용자가 일반적으로 길을 잃는 느낌. 둘 다 포크를 디버깅 할 수 없습니다. 둘 다 SVN / CVS 통합에 문제가 있습니다. (Subclipse와 함께 최신 Eclipse는 4/28/11부터 Gnome에서 중단되어 10 분마다 충돌합니다). 소스 제어를 설정하는 것은 악몽이며 이러한 IDE와의 통합은 매우 어렵습니다.
bleepzter

4
SVN / CVS를 사용하여 시작하는 @bleepzter -1;)
OneOfOne

1
모든면에서 월등 한 Mercurial, Git 및 Bazaar.
OneOfOne

66

이 주제에 약간의 지식을 추가하기위한 빠른 답변 : NetBeans를
반드시 확인해야합니다 . Netbeans 6.7에는 다음과 같은 기능이 있습니다.

  • C / C ++ 프로젝트 및 템플릿 : 구문 강조, 자동 코드 완성, 자동 들여 쓰기를 지원합니다.
  • C / C ++ 디버거가 있습니다
  • 컴파일러 구성, 구성 관리자 및 Makefile 지원 (마법사 사용)을 지원합니다.
  • 클래스 창, 사용 창 및 파일 탐색 창 (또는 패널)이 있습니다.
  • 매크로 확장보기 , 또한 툴팁 .
  • QT 개발 지원 .

나는 그것이 완벽한 (그리고 훨씬 더 나은) Visual Studio 대체이며 C / C ++을 배우는 매우 좋은 도구라고 생각합니다.

행운을 빕니다!


2
또한 C ++에도 좋습니다. 최고의 언어 파서가 있습니다.
Johan Boulé

1
나는 C ++ 개발을 위해 이클립스보다 Netbeans을 훨씬 더 즐겼다.
Thomas Langston

9
NetBeans는 Eclipse보다 훨씬 더 즐겁습니다. 더 많은 사람들이 그것을 깨닫기 시작합니다.
Didier A.

1
몇 주 동안 Eclipse와 싸우고 나서 이것을 발견하고 NetBeans로 전환했으며 감사합니다! 더 좋은 인터페이스를 가지고 있으며, 반응이 좋고, 직관적이며 사용자 정의가 가능합니다. 이클립스
Frederik

1
NetBeans가 Eclipse보다 얼마나 좋은지에 대한 또 다른 투표. 또한 내가 사용해 본 최고의 Vim 에뮬레이션 (플러그인)도 있습니다.
thoughton

52

적어도 Qt 특정 프로젝트의 경우 Nokia / Trolltech / Digia 의 Qt Creator 는 큰 가능성을 보여줍니다.


10
비 Qt 프로젝트에도 사용합니다.
기회

그거 좋네. 나는 그것을 시도하고 그것을 많이 좋아한다.
Tyler Long

32

어떻게해야했는지, 무엇을 바꿔야하는지 좀 더 명확하게 설명해 주시겠습니까? 아마도 당신이 사용한 정보에 대한 링크를 제공하여 올바른 방향으로 나를 가리킬 수 있습니다.

첫 번째 소스는 실제로 도구 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도움을 받으려면 입력하십시오 .


@ confuzatron : 아니요, 몇 가지 이유로 gdb를 사용합니다. 가장 중요한 것은 일반적으로 X 서버를 실행하지 않고 작업하는 것입니다. 또한 DDD가 오랫동안 업데이트를 보지 못했다는 사실에 대해 약간 불편합니다. 다른 한편으로, 프로젝트 소유권은 이제 막 바뀌었고 변화가있는 것 같습니다.
Konrad Rudolph 2011

탭 정보 wrt gvim에 감사드립니다, 결코 새로운 것은 아닙니다 :)
Letholdrus

VS2010은 컴파일없이 구문 오류를 강조합니다.
Candy Chiu

@Candy 사실, VS2010은 이와 관련하여 많은 사항을 변경했으며 백그라운드 컴파일을위한 고급 기능을 추가했습니다. 그러나 gvim은 그 동안 플러그인을 통해 많은 기능을 추가했습니다. 특히 clang_complete플러그인을 통해 컴파일하지 않고 구문 오류 강조 표시를 얻을 수 있습니다 . 이 답변은 2009 년부터 작성되었으며 일부는 구식입니다. 그러나 모든면에서 개선되어 다소간 고르게되었습니다.
Konrad Rudolph

25

대답을 반복하지는 않지만 조금 더 추가 할 수 있다고 생각합니다.

Slickedit 는 훌륭한 IDE입니다.

속도를 늦추거나 모든 시간 인덱싱을하지 않고 큰 코드베이스를 잘 지원합니다. (이것은 일식의 cdt와 관련된 문제입니다). Slickedit의 속도는 실제로 가장 좋은 것입니다.
코드 완성은 잘 작동하며 자동 서식, 미화 및 리팩토링과 같은 많은 옵션이 있습니다.
통합 디버깅이 있습니다.
플러그인 지원과 상당히 활발한 커뮤니티가 있습니다.
이론적으로는 전통적인 메이크 파일 작업을 수행하는 사람들과 직접 통합 할 수 있어야합니다. 프로젝트에서 직접 프로젝트를 만들 수는 있지만 시도했을 때 마음에 들었던 것처럼 원활하게 작동하지 않았습니다.
Linux 이외에도 필요한 경우 Mac 및 Windows 버전이 있습니다.


23

구시대의 유닉스 사람으로서 저는 항상 Emacs를 사용합니다. 그러나 그것은 꽤 가파르고 긴 학습 곡선을 가지고 있기 때문에 초보자에게 추천 할 수 있는지 확실하지 않습니다.

Linux에는 "좋은"IDE가 없습니다. 이클립스는 C / C ++에 좋지 않다 (CDT는 개선되고 있지만 아직은 유용하지는 않다). 다른 것에는 찾고자하는 모든 기능이 없습니다.

모든 개별 도구 (gcc, make, gdb 등)가 어떻게 작동하는지 배우는 것이 정말 중요합니다. 그렇게 한 후에는 Visual Studio의 작업 방식이 매우 제한적일 수 있습니다.


Eclipse CDT "아직 유용하지 않습니까?" 정교가 도움이 될 것입니다. 나는 그것이 매우 유용하고 사용하기 쉽다는 것을 알았습니다.
존 즈 빙크

"아직 유용하지 않음": 자동 완성이 자주 작동하지 않거나, 선언 또는 함수 사용으로 이동하지 않거나, 구문 강조가 항상 작동하지 않고, 리팩토링이 작동하지 않는 등 vi를 사용하는 것보다 조금 낫습니다. IMDB는 GDB 프론트 엔드 UI만으로도 가치가 있습니다.
Kristopher Johnson

CDT로 리팩토링을 시도하지는 않았지만 다른 것들은 효과가있는 것 같습니다. 필자는 꽤 큰 최대 메모리 사용 구성 매개 변수 (8-12GB의 RAM이 있음)로 Eclipse를 실행하지만 괜찮은 것처럼 보입니다.
존 즈 빙크

마지막으로 Eclipse CDT를 시도했을 때 자동 완성을위한 구문 / 의미 파서가 호출 될 때마다 8 초 동안 전체 IDE가 정지되었습니다. 그것은 모든 기능을 쓸모 없게 만들었습니다. 그 자체 스레드에서 실행되지 않았다는 것을 믿을 수 없습니다. 이것은 2 년 전 이었으므로 지금은 고쳐졌습니다. (right?)

나는 CDT가 QT와 Boost 로의 전환을 위해 굉장한 것을 발견했습니다. Mingw가있는 창에는 문제가 있지만 적절한 Posix 환경에서 자동 완성 기능이 훌륭합니다! 선언 탐색은 실제로 하나의 눈부신 구멍입니다. 그러나 C ++에 여러 개의 동일한 선언이있을 수 있다는 것을 고려할 때 놀라지 않습니다. 이것은 Java보다 해결하기 어려운 문제입니다.
Chris K

18

Checkout Netbeans는 Java로 작성되었으므로 OS에 관계없이 동일한 환경을 유지하며 C ++ 이상의 기능을 많이 지원합니다.

나는 IDE가 매우 개인적인 선택 일 수 있다고 생각하기 때문에 당신을 설득하려고하지 않을 것입니다. 저에게는 코드 작성 언어를 지원하고 IDE에서 기대할 수있는 표준 기능을 갖추고있어 빠른 속도로 생산성을 향상시킵니다.


5
+1을 추가 할 수 있습니다. netbeans는 내가 IDE에서 본 최고의 C ++ 언어 파서를 가지고 있습니다. 식의 cdt를 친다.
Johan Boulé

18

이 질문에 대한 빠른 후속 조치 ...

Linux에서 C ++ 프로그래밍을위한 주요 'GUI'도구로 Vim을 사용하기 시작한 지 한 달이 지났습니다. 처음에는 학습 곡선이 약간 가파르 지 만 잠시 후 올바른 옵션이 켜지고 스크립트가 실행 되면서 실제로 중단되었습니다!

나는 당신이 Vim을 당신의 요구에 맞게 만들 수있는 방법을 좋아합니다; 키 매핑을 추가 / 변경하면 Vim은 생산성이 높은 'IDE'로 바뀝니다 .

Linux에서 C ++ 프로그램을 빌드하고 컴파일하는 툴체인도 매우 직관적입니다. 메이크업 및 g는 ++이다 사용할 수 있습니다 도구를 제공합니다.

디버거 DDD는 정말하지만 좋은 것이 아니라 어쩌면 내가 제대로 마스터 할 수있는 시간이 없었어요의 때문.

따라서 Linux에서 좋은 C ++ IDE를 찾고 있거나 찾고있는 사람에게 Linux와 같은 표준 도구 (Vim, g ++, ddd)를 사용하는 것이 가장 좋습니다. 그들은 다른 아들을 찾기 전에 ...

마지막으로, 여기에 그의 답변 에 대해 Konrad 에게 감사하고 싶습니다 . Linux 개발 환경에서 내 길을 찾는 데 정말로 도움이되었습니다. 감사합니다!

나는 또한 해요 하지 이 질문을 폐쇄, 그래서 사람들은 여전히 반응 할 수 또는 어쩌면 이미 정말 좋은 답변에 새로운 제안이나 추가 사항을 추가 ...


Vim + ctags에서 IntelliSense-ish 기능을 사용할 수 있습니까? 실제로 자동 완성뿐만 아니라 함수 매개 변수 목록과 같은 상황에 맞는 정보입니까?
kizzx2

@ kizzx2 : , 거기에 있는 많은 옵션 .
Fred Nurk 2018 년


12

더 짧은 대답은 원하는 "편집기"를 선택한 다음 GDB 콘솔 또는 간단한 GDB 프런트 엔드를 사용하여 응용 프로그램을 디버깅하는 것입니다. 디버거에는 Netbeans sucks와 같은 멋진 IDE가 C / C ++ 용으로 제공됩니다. Netbeans를 편집기로 사용하고 Insight 및 GDB 콘솔을 디버거로 사용합니다.

통찰력을 갖추면 멋진 GUI와 GDB의 강력한 힘을 얻을 수 있습니다.

GDB 명령에 익숙해지면 GUI를 사용하여 결코 할 수없는 일을 할 수 있기 때문에 GDB 명령을 좋아하기 시작합니다. GDB 7 이상을 사용하는 경우 Python 을 스크립트 언어로 사용할 수도 있습니다 .

여기서 대부분의 사람들은 IDE의 "편집기"에 더 많은주의를 기울였습니다. 그러나 C / C ++로 대규모 프로젝트를 개발하는 경우 70 % 이상의 시간을 "디버거"에 쉽게 보낼 수 있습니다. 멋진 IDE의 디버거는 Visual Studio보다 10 년 이상 뒤져 있습니다. 예를 들어 Netbenas는 Visual Studio와 매우 유사한 인터페이스를 가지고 있습니다. 그러나 디버거에는 Visual Studio와 비교하여 많은 단점이 있습니다.

  1. 수백 개의 요소 만있는 배열조차 표시하기 매우 느림
  2. 변경된 값을 강조 표시하지 않음 (기본적으로 Visual Studio는 변경된 값을 시계 창에 빨간색으로 표시)
  3. 메모리 표시 능력이 매우 제한적입니다.
  4. 소스 코드를 수정 한 다음 계속 실행할 수 없습니다. 버그가 발생하는 데 시간이 오래 걸리는 경우 소스를 변경하고 변경 사항을 적용하고 응용 프로그램을 계속 실행하고 싶습니다.
  5. "다음 명령문"을 실행하도록 변경할 수 없습니다. Visual Studio에서 "Set Next Statement"을 사용하여 응용 프로그램 실행 방법을 변경할 수 있습니다. 이 기능을 제대로 사용하지 않으면 응용 프로그램이 중단 될 수 있지만 시간이 많이 절약됩니다. 예를 들어, 응용 프로그램 상태가 올바르지 않지만 문제점의 원인을 모르는 경우 응용 프로그램을 다시 시작하지 않고 소스 코드의 특정 영역을 다시 실행할 수 있습니다.
  6. 벡터,리스트, deque, 맵 등과 같은 STL을 기본적으로 지원하지 않습니다.
  7. 감시 점이 없습니다. 변수가 변경되는 시점에서 응용 프로그램을 바로 중지해야 할 때이 기능이 필요합니다. 인텔 기반 컴퓨터에는 하드웨어 감시 점이 있으므로 감시 점이 시스템 속도를 저하시키지 않습니다. 감시 점을 사용하지 않고 찾기 어려운 버그를 찾는 데 몇 시간이 걸릴 수 있습니다. "Visual Studio"는 "watch pointer"를 "Data BreakPoint"로 호출합니다.

목록이 훨씬 길 수 있습니다.

Netbeans 또는 다른 유사한 IDE의 단점에 너무 실망하여 GDB 자체를 배우기 시작했습니다. GDB 자체가 매우 강력하다는 것을 알았습니다. GDB는 위에서 언급 한 모든 "불이익"을 가지고 있지 않습니다. 실제로 GDB는 매우 강력하며 여러면에서 Visual Studio보다 훨씬 좋습니다. 여기 간단한 예를 보여 드리겠습니다.

예를 들어 다음과 같은 배열이 있습니다.

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

응용 프로그램이 중지되고 IdAndValues의 데이터를 검사하려는 경우 예를 들어 특정 "ID"에 대한 배열의 서수와 값을 찾으려면 다음과 같은 스크립트를 만들 수 있습니다.

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

현재 컨텍스트에서 응용 프로그램의 모든 변수, 고유 변수 (예 : $ i), 전달 된 인수 (예 : $ arg0) 및 모든 GDB 명령 (내장 또는 사용자 정의)을 사용할 수 있습니다 ).

GDB 프롬프트에서 PrintVal 1 을 사용 하여 ID "1"의 값을 인쇄하십시오.

그건 그렇고, NetBeans에는 GDB 콘솔이 제공되지만 콘솔을 사용하면 Netbeans이 충돌 할 수 있습니다. NetBeans에서 콘솔이 기본적으로 숨겨져있는 이유입니다.


좋은 지적. 그러나 불행히도 GDB는 매우 가파른 학습 곡선을 가지고 있습니다. 나는 수년 동안 그것을 사용해 왔으며 여전히 매크로를 사용한 적이 없으며 ( 매크로를 통해 가능하다는 것을 알고 있지만 ) 던지는 STL 코드는 현대 IDE보다 더 잘 디버깅 할 수 없습니다.
Konrad Rudolph

GDB에서 대부분의 명령을 마스터하는 데 2 ​​일이 걸렸습니다. GBD의 원천을 알고 나면 뒤돌아 보지 않을 것입니다. 찾기 어려운 버그를 수정하면 많은 시간을 절약 할 수 있습니다.
Charles Zhang

11

저는 지금까지 빠르고 가벼운 IDE 인 " Ganyy "를 사용 하고 있습니다.

Geany의 기능은 다음 같습니다.

  • 코드 접기
  • 세션 절약
  • 구문 강조, 탭, 자동 들여 쓰기 및 코드 완성과 같은 기본 IDE 기능
  • 간단한 프로젝트 관리
  • 시스템 구축
  • 색상 선택기 (웹 개발시 놀랍도록 편리함)
  • 임베디드 터미널 에뮬레이션
  • 전화 팁
  • 심볼리스트
  • 일반적인 구성의 자동 완성 (예 : if, else, while 등)

10

Eclipse for Java를 좋아한다면 Eclipse CDT를 제안한다. C / C ++ 지원은 Java만큼 강력하지는 않지만 여전히 대부분의 기능을 제공합니다. Makefile에 익숙하지 않은 경우 C / C ++ 프로젝트 작업을보다 쉽게하는 Managed Project라는 멋진 기능이 있습니다. 그러나 여전히 Makefile을 사용할 수 있습니다. 저는 C와 Java 코딩을하고 CDT에 정말 만족합니다. C의 임베디드 장치 와이 장치와 통신하는 Java의 응용 프로그램의 펌웨어를 개발 중이며 두 환경 모두에 동일한 환경을 사용하는 것이 좋습니다. 아마 생산성이 높아질 것 같습니다.


9

나는 사람들이 IDE에 대한 원래 질문에서 요청을 완전히 그리워하는 것을 좋아합니다. 리눅스는 IDE가 아니다. 그것은 그 단어의 의미가 아닙니다. 나는 vi와 gcc를 사용하여 c와 c ++을 배웠고 make를 만들었고, 적절한 도구가 아니라 IDE가 아니라고 말합니다. vim이나 emacs와 같은보다 정교한 도구 나 원하는 멋진 편집기를 사용하더라도 명령 행에 명령을 입력하는 것은 IDE가 아닙니다.

또한 Visual Studio의 일부로 make가 존재한다는 것을 알고 있습니까? IDE가 "제한적"이라는 아이디어는 IDE를 사용하여 속도를 높일 수 있지만 여전히 필요할 때 명령 줄 항목으로 넘어갈 수 있다면 어리석은 일입니다.

위에서 말했듯이 위의 몇 가지 코드 블록을 시도해 보는 것이 좋습니다. 괜찮은 코드 강조 표시, 프로젝트 작성, 코딩, 실행 등의 작업이 실제 IDE의 핵심이며 상당히 안정적으로 보입니다. 디버깅 짜증 ... 나는 리눅스 / 유닉스 변형에서 괜찮은 대화 형 디버거를 본 적이 없다. gdb는 그렇지 않습니다. 비주얼 스튜디오 스타일 디버깅에 익숙하다면 운이 좋지 않을 것입니다.

어쨌든, 나는 내 물건을 포장하러 갈 것이다. 나는 1-view-only 리눅스 군중이 이것을 외치며 곧 도시에서 나를 도망 칠 것이라는 것을 알고있다.


당신은 요점이 있습니다. 우리가 알고있는 IDE가 아닙니다. 그러나 OP가 그 답변에 투표 한 것은 흥미 롭습니다! 돛대에 색을 입히기 : 나는 커맨드 라인 makefile의 팬입니다.
ScrollerBlaster

마지막으로 뇌를 가진 누군가 ... emacs / vim으로 모든 것을 할 수 있다면 다른 사람들은 사소한 것을 코딩하는 것 같아요.
Pippo


7

나는 Ultimate ++ 의 IDE를 아주 좋아한다 . 자체 라이브러리와 함께 사용하도록 설계된 일부 기능이 있습니다 (BTW, GTK + 또는 QT 중 하나를 사고 싶지 않은 경우 상당히 훌륭한 툴킷입니다).하지만 일반적인 C ++ 프로젝트와 완벽하게 호환됩니다. 적절한 코드 완성, 우수한 구문 색상 지정, 통합 디버깅 및 최신 IDE가 지원하는 다른 모든 기능을 제공합니다.


와! 정말 놀라운 스크린 샷에 대해! 나는 그것을 시도 할 것입니다. 내가 지불해야하는지 아십니까? (이것은 Ultimate ++ 웹 사이트에서 명확하지 않습니다)

아니, "음성", "맥주"및 "승차"와 같이 무료입니다. 그들은 심지어 패치를 받아들이는 것에 대해 매우 개방적이며 매우 자주 릴리스하기 때문에 오픈 소스만큼이나 :)
dguaraglia

7

나는 정말로 codeblocks를 제안한다 . Eclipse만큼 무겁지 않고 Visual Studio 프로젝트 지원을 제공합니다.


6

아마도 Eclipse 용 Linux 도구 프로젝트 가 당신의 요구를 충족시킬 수 있습니까?

Linux Tools 프로젝트는 모든 기능을 갖춘 C 및 C ++ IDE를 Linux 개발자에게 제공하는 것을 목표로합니다. CDT의 소스 편집 및 디버깅 기능을 기반으로 GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng 등과 같은 인기있는 기본 개발 도구를 통합합니다. 현재 프로젝트에는 LTTng 추적 뷰어 및 분석기, RPM .spec 편집기, Autotools 빌드 통합, Valgrind 힙 사용량 분석 도구 및 OProfile 호출 프로파일 링 도구.


6

리눅스에는 많은 IDE가 있습니다 :

에서 경험, 가장 가치는 이클립스Qt는 창조주 . 둘 다 모든 "표준"기능 (자동 완성, 구문 강조, 디버거, 자식 통합)을 제공합니다. Eclipse는 리팩토링 기능도 제공하고 Qt Creator는 Valgrind와의 통합을 제공하고 원격 대상에 배치를 지원합니다.

또한 상용 CLion IDE 는 훌륭합니다 (그러나 광범위하게 사용하지는 않았습니다).


5

Anjuta가 Gnome 사용자에게는 매우 매끄 럽습니다. 나는 KDevelop로 조금 연주했으며 훌륭하지만 기능적으로 부족합니다. Code :: Blocks도 매우 유망합니다.


5

- 썬 스튜디오 버전 (12)는 무료로 다운로드 (사용 가능한 무료 및 유료 지원)입니다 http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .

이 IDE에서 플러그인 지원을 포함하여 코드 완성 및 디버깅 지원이 있다고 확신합니다.

Sun Studio는 Solaris뿐만 아니라 Linux에서도 사용할 수 있습니다. 포럼 : http://developers.sun.com/sunstudio/community/forums/index.jsp . Sun Studio Linux 포럼 : http://forum.sun.com/forum.jspa?forumID=855

이 도구에 대한 귀하의 의견을 듣고 싶습니다.

BR,
~ A



5

그리고 나는 이것이 단순히 당신이 일하는 방식이 아니라는 것을 알아 차 렸습니다. 그리고 나는 모든 것을 던졌고, 며칠 동안 매뉴얼을 읽고, 쉘 (bash)을 설정하고, GVIM 환경을 설정하고, GCC / binutils 툴체인을 배웠습니다. 그 후로 gdb를 만들고 행복하게 살았습니다.

나는 대부분 동의하지만 문제는 또한 인식 중 하나입니다. 우리는 선택한 IDE (또는 다른 환경)에서 생산성을 얻는 것이 얼마나 어려웠는지 잊어 버립니다. IDE (Visual Studio, NetBeans, Eclipse)는 여러 가지면에서 놀랍게 번거 롭습니다.

구시대의 유닉스 사람으로서 저는 항상 Emacs를 사용합니다. 그러나 그것은 꽤 가파르고 긴 학습 곡선을 가지고 있기 때문에 초보자에게 추천 할 수 있는지 확실하지 않습니다.

나는 두 번째입니다; Linux와 MSW (XP2, W2K)에서 Emacs를 기본 편집기로 사용하십시오. 나는 학습 곡선 이 가파르다 는 것에 동의하지 않지만, 많은 수의 기능으로 인해 학습 곡선 이 다고 말합니다 . 짧은 시간 안에 생산성을 높일 수 있지만 원하는 경우 앞으로 몇 년 동안 새로운 기능을 배울 수 있습니다.

그러나 Emacs의 모든 기능을 드롭 다운 메뉴에서 사용할 수 있다고 기대하지 마십시오. 기능을 찾기에는 너무 많은 기능이 있습니다.

내가 언급 한대로, 나는 몇 년 동안 MSW에서 GNU Emacs를 사용해왔다. 그리고 2008 년으로 "업그레이드"될 때까지 항상 Visual Studio와 잘 작동했습니다. 지금은 가끔 디스크에서 파일을 새로 고침하기 전에 몇 초를 지연시킵니다. VS 창에서 편집하는 주된 이유는 "Intellisense"코드 완성 기능입니다.



5

Vim을 사용하지만 동료 중 일부는 SlickEdit 을 사용 합니다. 우리는 어쨌든 특정 프로젝트에서 그렇게 할 수 없기 때문에 통합 디버깅에 대해 확신하지 못합니다.

SlickEdit은 상호 참조 및 태그 점프와 함께 큰 코드베이스 탐색을 지원합니다. 물론 구문 강조 및 코드 완성과 같은 기본 사항도 있습니다.


5

Eclipse CDT 및 Qt Creator (Qt 애플리케이션 용)를 사용합니다.

그것이 내 취향입니다. 매우 암시적인 질문이며 개발자만큼 많은 답변이 있습니다. :)


4

매끄러운 편집. 2005 년부터 Windows와 Linux 모두에서 SlickEdit을 사용하고 사랑했습니다. 또한 Visual Studio (5, 6, 2003, 2005) 및 Emacs 및 명령 줄에서 작업 한 경험이 있습니다. 외부 메이크 파일과 함께 SlickEdit을 사용하고 일부 팀원은 SlickEdit을 사용하고 다른 팀원은 Emacs / vi를 사용합니다. 통합 디버거, 통합 버전 제어, 통합 빌드 시스템을 사용하지 않습니다. 일반적으로 너무 많은 통합이 실제로 고통 스럽습니다. SlickEdit은 강력하고 빠르며 직관적입니다. 독일의 자동차, 운전사의 차와 같습니다.

SlickEdit의 최신 버전은 저에게 관심이없는 많은 기능을 제공하는 것 같습니다. 앞으로 제품이 부풀어 오르고 희석 될까 걱정됩니다. 지금은 (V13.0을 사용합니다) 훌륭합니다.



3

vim을 오랫동안 사용했다면 실제로 IDE로 만들어야합니다. 사용할 수있는 애드온이 많이 있습니다. 나는 그중 몇 가지가 매우 유용하다는 것을 알았고 여기에서 컴파일했습니다.

그리고 vi / vim tips & tricks 시리즈에 더 많은 내용이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.