Linux 下程序开发的正确姿势是什么?想尽量接近 Windows 下 Visual Studio 和 TortoiseGit 这类工具的体验

2021-07-07 14:29:33 +08:00
 wudicgi
如题,以前一直是在 Windows 平台上开发。
现在有项目需要在 Linux 下进行编译和调试,想了解下正确姿势是什么。

网上搜索看到的一些回答感觉比较偏执,如果在 Linux 中开发时,图形界面程序就是都是垃圾我也就认了,老老实实地去熟悉命令行操作。如果有更方便的、能提高效率的方式,还是很想知道的。

举几个具体操作的例子,可能更清楚些:

1. 在 Visual Studio 中编译之后的警告和错误信息会统一在问题面板中列出,双击就能定位到源码中的位置。
在 Linux 中,一般是怎么做的?直接在终端中看输出的错误信息吗?还是配置一下 VS Code 之类的工具来调用编译,并且把结果按格式显示

2. 在 Linux 中一般怎么调试?如果没用 IDE 的话,就只能直接命令行 gdb 吗?
用 IDE 的话,有什么用着方便可靠的吗?

3. Windows 下我用 TortoiseGit, Linux 下图形界面的 Git 客户端有没有好用的?
SmartGit 还没试,因为定价太高了。GitKraken 刚试过,作为一个订阅费每月 $5 的软件,操作居然会卡,也远到不了 TortoiseGit 的水平
6671 次点击
所在节点    Linux
74 条回复
vk42
2021-07-07 14:35:33 +08:00
Git 用图形界面有什么绝对优势呢?还要交钱去用?
有个 gitg,但不了解你对 GUI 的具体需求,不知道是不是满足……
wudicgi
2021-07-07 14:46:49 +08:00
@vk42 我用 TortoiseGit 的话,有一些比较常用的操作举个例子:
1. 提交。提交对话框中,底下会列出有改动的文件,未在版本控制中的文件也可以看一眼选择是加入、忽略还是不管它。有修改的文件直接双击一下就能打开 diff 工具看看修改是不是都是正常应该有的,顺便对照 diff 来写提交的 comment, 边看边写。
2. 分支操作。查看日志窗口中,各个提交的显示比命令行中的清晰、直观。找到提交后,右键菜单中就能完成创建分支、创建分支并切换、重置到该版本和浏览版本库等操作。在浏览引用窗口中,看远端分支、对本地分支改个名啥的也都很方便。
3. 感觉列更多意义不大了,就是看着清晰,操作方便,一般除了提交时写 comment, 就点鼠标就行了。
3dwelcome
2021-07-07 14:51:26 +08:00
我也想发类似贴来着。看 github 上大佬代码,很多都是 ubuntu 平台,一个 makefile + cmake 就直接开干。

也没找到对于图形项目工程信息,天知道大佬们是怎么调试的。

对于个人而言,VS 图形调试对于理解代码流程,实在太重要,太方便了。
wellsc
2021-07-07 14:53:26 +08:00
命令行效率更高
littlewing
2021-07-07 14:57:28 +08:00
Clion
wudicgi
2021-07-07 14:59:06 +08:00
@3dwelcome 我忍不住发这个帖主要是怕因为我认知的局限错过了什么美好的东西
就像调试单片机程序一样, 51 和 Cortex-M 核都能用 printf, 但 Cortex-M 上我肯定多数问题是用调试器来调。
insert000
2021-07-07 15:00:34 +08:00
jetbrain 全家桶带的 git 工具很好用,不需要额外下载了
monetto
2021-07-07 15:02:36 +08:00
@wudicgi 如果只有 Git 诉求的话,可以使用 IDEA 社区版,开源,免费。本质是个写 Java 的 IDE,但是里面的 Git 插件过于好用,你说的那些 Git 功能都有。当 Git 发生冲突时,一键自动合并,再直接用鼠标选择要保留哪些冲突的代码,非常好用,C 语言虽然没有语法解析器,但是有高亮。应该可以用。有时候我用 VSCode 开发完前端,然后再打开 IDEA 去管理要提交的代码。

有开发诉求也可以使用 CLion,这个是专门写 C 语言的,和 IDEA 是基于一个平台开发的,但是收费。
MegrezZhu
2021-07-07 15:10:23 +08:00
感觉最适合 LZ 的方案会是 VSCode Remote……
Itoktsnhc
2021-07-07 15:11:40 +08:00
vscode remote 比较合适。
Jirajine
2021-07-07 15:12:19 +08:00
vscode+clangd+lldb
简单轻量,兼容各种 build system 。
Itoktsnhc
2021-07-07 15:13:05 +08:00
wudicgi
2021-07-07 15:16:38 +08:00
谢谢, JetBrains 和 VS Code Remote 的方案我都去试试
先查查 VS Code Remote 做 Linux C/C++ 开发能到什么程度
CLion 看定价如果好用的话个人能负担,劝别人用有点悬

JetBrains 全家桶很有名哈,但因为平时不写 Java, 只装过 IDEA 进行编译,没咋用过
aneostart173
2021-07-07 15:20:31 +08:00
wsl+vscode 吧,最近再用,做嵌入式开发很好。
个人是 clion 订阅用户,感觉 clion 比不上 visual studio,只能开发小的模块。
andyhuzhill
2021-07-07 15:26:22 +08:00
Qt Creator
ladypxy
2021-07-07 15:28:13 +08:00
@wudicgi 你要的这功能随便哪个 IDE 都有啊
lecher
2021-07-07 15:36:08 +08:00
调试看语言,有很多 linux 的 IDE 都支持 debug 模式。
git 同样也有 IDE 插件支持,或者 smartgit gitg 之类的都可以。

linux 下的开发主要收益是 shell 对不同软件操作的集成成本极低,只要一个操作可以在 shell 里面写出来,就可以将其与其它操作组合起来写成一个批处理脚本做自动化。
比如提交时代码拉取最新分支并同步到本地,然后提交。

在 windows 下很多 IDE 的集成做得比 linux 好,但是大多是同一个软件内的集成,而 linux 的优势就是不同软件基本都暴露了命令行的操作支持,可以很方便的做跨软件的集成。
Hawthorne
2021-07-07 15:40:41 +08:00
git 的话推荐 sublime merge,就是 sublime text 那家的。
monetto
2021-07-07 15:41:22 +08:00
@wudicgi 开发工具其实随意的,如果比较介意 CLion 的价格,可以用 VSCode 开发代码。IDEA 社区版提交 Git 。
liuhuansir
2021-07-07 15:46:54 +08:00
vscode+wsl 已经能满足你的需求了,git 的话,装下插件,也挺不错的,常用的操作都有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX