programing

Linux에서 C ++ 애플리케이션을 개발하는 데 사용하는 도구는 무엇입니까?

copysource 2021. 1. 16. 20:40
반응형

Linux에서 C ++ 애플리케이션을 개발하는 데 사용하는 도구는 무엇입니까?


Linux 환경에서 C ++ 애플리케이션을 개발합니다. 내가 매일 사용하는 도구에는 CDT 플러그인, gdb 및 valgrind가있는 Eclipse가 포함됩니다.
다른 사람들은 어떤 도구를 사용합니까? Microsoft Visual Studio의 매끄러움에 필적하는 Linux 용 제품이 있습니까?


터미널 창을 많이 사용합니다. 흥미로운 소스 파일에서 vim을 실행하고 컴파일러 오류에 대한 make 및 g ++ 출력 또는 런타임 오류에 대한 gdb 세션을 사용합니다. 정의를 찾는 데 도움이 필요하면 cscope를 실행하고 vim의 cscope 지원을 사용하여 이동합니다.

Eclipse CDT가 두 번째 선택입니다. vim에 비해 훌륭하지만 거대하고 부적당하며 느립니다.

터미널 창과 vim을 사용하는 것은 매우 유연합니다. 400MB의 Java를 가지고 다닐 필요가 없기 때문에 어디서나 SSH 세션을 사용할 수 있습니다.

메모리 문제를 찾아야 할 때 valgrind를 사용합니다.

strace내 소프트웨어가 시스템 호출 수준에서 수행하는 작업을 관찰하는 데 사용 합니다. 이렇게하면 time(0)연속으로 4 번 호출 하거나 한 번에 1 바이트를 읽기 위해 소켓을 호출 하는 것과 같은 것을 너무 많이 호출 poll()하거나 차단하지 않는 정말 멍청한 코드를 정리할 수 있습니다 . (그것은 매우 비효율적이고 게으른 것입니다!)read()read()

objdump -d특히 성능에 민감한 내부 루프의 경우 기계 코드를 검사하는 데 사용 합니다. 이것이 반복자를 사용하는 것에 비해 문자열에서 배열 인덱스 연산자의 속도가 느려지는 것과 같은 것을 찾는 방법입니다.

oprofile을 사용하여 최적화 된 코드에서 핫스팟을 찾으려고합니다. 종종 gprof보다 약간 더 잘 작동하며 데이터 검색 및 명령어 캐시 누락과 같은 작업을 수행 할 수 있습니다. GCC를 사용하여 유용한 프리 페치 힌트를 어디에 놓을 수 있는지 보여줄 수 있습니다 __builtin_prefetch. 나는 그것을 사용하여 뜨겁고 잘못 예측 된 지점을 찾으려고 노력했지만 그것이 나를 위해 작동하지 못했습니다.

업데이트 : 나는 perf가 oprofile보다 훨씬 잘 작동한다는 것을 발견했습니다. 적어도 Linux에서는. 성능을 사용하는 법을 배우고 저처럼 좋아합니다.


물론 g ++뿐만 아니라 절대적으로 환상적인 크로스 플랫폼 IDE (Win32, * nix, Mac) 인 Code :: Blocks 도 있습니다 .

나는 SVN에서 야간 (최근 주간과 유사) 빌드를 사용합니다. 최신 IDE에서 기대할 수있는 거의 모든 종소리와 휘파람이 있습니다. 정말 환상적인 오픈 소스 프로젝트입니다.

또한 Linux 에서는 돈으로 살 수있는 최고의 메모리 추적기 (다른 작업도 수행) 도구 인 Valgrind사용하는 즐거움을 누릴 수 있습니다. 그리고 그것은 무료입니다 :) 메모리 누수 등을 쉽게 추적 할 수 있습니다.

그리고 훨씬 더 있습니다! Linux는 훌륭한 개발 플랫폼입니다. :)

(편집) 질문에서 Valgrind를 언급했다는 사실을 깨달았습니다.


Linux 용 C ++ 앱을 개발할 때 여러 cmdline 도구를 사용하는 것을 선호합니다. Vim은 많은 플러그인으로 확장되었습니다. ddd, valgrind, libefence 및 SCons를 사용하는 Gdb (automake는 ... 어디에서 고통 스럽습니다.)


  • g ++

  • 이맥스

  • bash 명령 줄

  • emacs의 gdb 모드 (유형 MX gdb)

  • 하다


emacs, cmake, gdb, git, valgrind. Visual Studio만큼 매끄럽지는 않지만 잘 작동하며 bash 스크립팅 또는 emacs lisp를 통해 기능을 쉽게 추가 할 수 있습니다.


지금은 Qt Creator를 사용 합니다. 크로스 플랫폼이며 Qt와 매우 잘 통합되지만 (물론) 독립형 응용 프로그램을 만드는 옵션이 있습니다.


g ++ 및 make


나는 KDevelop이 Microsoft Visual Studio에서 가장 가까운 것이라고 믿습니다. 당신은 거의 모든 것을 얻습니다 (불행히도 실제로 킬러 인 VS 디버거 제외). 이미 성숙하고 개발이 매우 빠르고 유망합니다.

실제로 VS에서 볼 수없는 몇 가지 항목을 구현합니다. 예를 들어, 헤더 파일과 cpp 파일을 수직 타일 모드로 열고 커서를 둘 다에서 동기화합니다. 즉, 함수 프로토 타입을 선택하면 항상 오른쪽에 구현이 있습니다.

KDevelop은 KDE 프로젝트이지만 Gnome에서 실행됩니다. Anjuta는 Gnome의 동등한 프로젝트이지만 실제 작업에는 사용할 수 없습니다. 나머지 스택 gcc의 경우 코드 스크립팅을 위해 valgrind ddd (gdb IDE)와 python을 만듭니다.

VS IDE와 다른 접근 방식을 시도해도 괜찮다면. vim을 사용해 볼 수도 있습니다. 하지만 익숙해지는 데는 오랜 시간이 걸립니다.


Eclipse CDT 는 정말 훌륭합니다. 나는 여전히 때때로 Emacs에 의지해야하지만 인덱싱, 호출 트리, 유형 트리, 리팩토링 지원 (자바 리팩토링과 같지 않다고 생각) 등을 정말 좋아합니다. 구문 강조는 사용자 정의하면 매우 강력합니다. 지역 변수, 함수 인수, 메서드 등의 색상). 코드 완성도 정말 편리합니다. 나는 주로 Eclipse 3.3을 사용했지만 3.4도 훌륭합니다.

또한, 나는 주로 이것을 다소 큰 프로젝트 (~ 1e6 sloc)에 사용하고 있습니다-장난감 프로젝트에는 과잉 일 수 있습니다.


Linux에서 C ++ 코드를 개발할 때 emacs를 편집기와 gdb 프런트 엔드로 사용했습니다. 나중에 우리 회사 는 모든 프로그래머를 위해 SlickEdit구입 했는데, 이는 Visual Studio와 동등하지 않은 멋진 IDE입니다. 때때로 valgrind와 gprof를 사용하면서 gdb를 광범위하게 사용했습니다. 스크립팅 언어를 사용하여 일상적인 작업에서 C ++를 보완하는 것이 좋습니다. 나는 PERL에서 파이썬으로, 현재의 루비로 갔다. 그들 모두는 일을 끝내고 C ++에 약점이있는 강점을 가지고 있습니다. 물론 모든 셸 명령을 마음대로 사용할 수 있습니다. 저는 매일 sort (), uniq (), awk 등을 사용합니다. 그리고 또 하나의 권장 사항은 grep 후속 작업 인 ack 입니다.


표준 도구 모음 + IDE가 필요합니다.

표준 툴체인에 대해 할 말이별로 없습니다. 예를 들어 Ubuntu / Debian에 다음을 통해 설치하십시오.

aptitude install build-essential

흥미로운 부분은 IDE에 관한 것입니다.

제 개인적인 인상은 오늘날-21 세기에-vi / emacs / make / autotools / configure는 특정 크기 이상의 소프트웨어 프로젝트를 개발하기에 충분하지 않다는 것입니다 (... 그리고 예, 유산 이단에 대해 저를 비난하십시오 . .).

어떤 IDE를 선택할지는 단순히 취향의 문제입니다. SOF에서 많은 스레드를 찾을 수 있습니다. 다음은 어떤 C ++ IDE가 "최고"인지에 대한 영구 링크입니다 : Linux 용 C ++ IDE .


저는 NetBeans C ++ 플러그인을 사용하는데, 이는 훌륭하고 CVS 및 SVN과 통합됩니다. 프로젝트 관리 측면도 매우 좋습니다. 몇 분 만에 작업을 시작했습니다. 인상적인 IDE이지만 Java이기 때문에 약간 느릴 수 있습니다.


  • GCC
  • GHC
  • 정력
  • Cmake
  • cscope
  • GDB
  • Valgrind
  • strace
  • 자식

정말 필요한 것이 더 있습니까?


  • 세게 때리다
  • 정력
  • 하다
  • G ++
  • GDB
  • Valgrind
  • Gprof
  • svn

탭을 지원하는 좋은 터미널을 제외하고는 GUI를 볼 수 없습니다. 코드, 디버거, 출력 등을 모두 별도의 창에 보관하고 정말 빠르게 앞뒤로 탭합니다.


  • CMake
  • 정력
  • g ++
  • kdevelop (SVN에서 매일 컴파일 됨!)
  • 할 수있을 때 Mercurial,해야 할 때 SVN, 정말 다른 선택이 없을 때 git (사용하는 프로젝트에 기여)
  • Valgrind

이미 나열된 많은 것 외에도 프로그램을 사용자에게 배포 하기 위해 autoconf 도구 세트를 사용합니다 .


Anjuta is a nice idea that makes Linux C++ dev quite enjoyable as well.


I'm another for KDevelop. It has a very diverse set of tools. I'm not real familiar with VS and whether or not it has integrated console access via its interface, but KDevelop can allow you to run a konsole inside the IDE, which I always find very useful. You could always give Netbeans a go now that it has full C/C++ support.

Other than that, I make good use of gdb and its gui-based version ddd for problems with the code or other bugs. For throw-away programs, like others that already posted - I use g++ at the terminal and make for some larger projects.


Eclipse CDT for editing, SVN for source control, SCons for build management, CruiseControl for automated builds and a proprietary unit test framework.


I use Eclipse+CDT on Windows and Cygwin + g++ to cross compile for Linux.

(Cross compilers are built using crosstool, a nice script-set for generating cross compilers)


Mi first choice is allways emacs with a lot of plugins: ecb gives some buffers to navigate on the folders, gdb, svn or git integration... This is mi first choice using Python too.

As a second choice, Netbeans with C++ plugin, is very simple and quite powerfull, but too heavy I think.


I use whatever is on the system. I prefer Eclipse CDT as an editor, and g++ as a compiler. However, if eclipse is not an option I use vi, which is fine as well.


The Eclipse incubation project Linux Tools integrates C/C++ Development tools. It's a GUI plugin to integrate tools like Valgrind, GProf, GCov, SystemTap etc into the Eclipse C++ CDT IDE.

Search for Eclipse Helios IDE for C/C++ Linux Developers (includes Incubating components), (120 MB)

Found this after trying to build Linux Tools using the .psf file available. Thankfully found this package hiding right at the bottom of the Helios packages download page.

Note that this is an incubation project so you can expect the support to only get better with time.

See Also: For updated info on installing and using Eclipse Linux Tools Click Here


FlexeLint for static code analysis, in addition to mentioned above:
Eclipse with CDT, gcc, make, gdb, valgrind, bash shell.
Source version control: Clearcase or git, depending on project.

ReferenceURL : https://stackoverflow.com/questions/17228/what-tools-do-you-use-to-develop-c-applications-on-linux

반응형