侧边栏壁纸
博主头像
Zhou JT's Blog 博主等级

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

C-常见开发环境

Administrator
2024-11-07 / 0 评论 / 0 点赞 / 18 阅读 / 0 字

title: C++ 常见开发环境
author: ZHJT
date: 2024-03-21 00:48:21
tags:

实际工作中 C++ 开发环境通常是什么样子?

平台编译器项目管理
WindowsMSVC
Linuxg++
Macclang

Linux:

在公司做开发的话:
一般Compilation和Linking这两步你都是没得选的,全公司统一的工具。统一配发的工具链。关于这一点没什么可说的,编译环境必然需要所有人全部统一,无论你使用什么发行版。

  • 而你用Linux开发了,大多数情况下都是服务器,一般来讲你都是没权限安这个安那个的,XWindow没有那就是没有,所以vim和emacs你至少要学会一样,一般会有Eclipse,但什么gedit,sublime就别想了。而事实上,如果你习惯linux命令行的很多功能,那你是会习惯vim和less的。
  • 另外,grep才是真正帮你理解别人程序的利器。Vim真正的缺点是那个声音,比如你走到行的尽头那个九十年代的报错声...
  • GDB 是个很nb的东西,但前提是你真的要很明白你在做什么。因为GDP这东西他没有很好的GUI,你用step,他能一路走的巨深无比在无数库里徘徊,最后你根本回不来了就,用next或设breakPoint的话,你其实已经很明白程序的flow了,而到了这个时候,其实printf就够了。GDB一般是直接找崩溃的地方以及stack trace时很有用。不能说就真比printf更有用。

版本控制:
有很多项目,通常使用 svn/hg/git。原先使用 svn 的为主,后来都转到了 hg,目前大多数项目使用 hg。至于 git 因为使用配置太过复杂,目前只有一个项目组使用。对于存在 svn 历史积淀的项目组来说,hg 确实是一个远超越 git 的神器。

传统的那一套:
editor: neovim + spacevim / spacemacs, 用法几乎一样. emacs CS方式, 本地或者远程溜得飞起. 写简单程序, 脚本等
IDE: eclipse cdt + makefile(也可以手动写Makefile), 阅读代码 + 调试
debugger: gdb + printk、systemtap
lint: pypep8, pylint, jslint
script: bash, shellcheck
编译工具:gcc g++
代码跟踪用cscope , ctags:
静态代码检查splint,
优化用gprof,
工程用autoconf

如果需要语义补全、实时编译检查这样的IDE拳头功能的话,可以试试看基于libclang的一系列工具,比如vim下我很喜欢的YouCompleteMe,还有一些开源IDE也在集成libclang了(kdevelop?)。比起ctags这样的静态字符串分析来说,还是强大很多的。llvm + clang的确很厉害。

分模块的定制化调试、开发:

没经历过大型项目的开发,只写过一些模块。低端码农介绍一下我司的开发环境。
主要明确一个概念,linux下写c系开发就不要指望什么IDE,因为性能或者功能上没一个能用的。所以,编辑、编译、调试,分成不同的模块进行,u got it?

代码同步:虚拟机设置共享文件夹,vs改代码,ctrl+shift+s即同步,重新编译一下即可调试。
编辑器:vs,注意Linux头文件加进来,避免报错。(win)
编译器:gcc(linux)
调试器:cgdb(linux),这调试器比较强的一点就是能将代码和gdb命令结合在一块,看起来有了那么一点点调试的意味。

0

评论区