想请教一下各位大佬,你们的 C/C++ Linux 开发环境是什么样的?

2023-06-27 09:21:56 +08:00
 sbldehanhan

用的操作系统是啥?用 IDE 吗? 本地编译还是服务器上编译?服务器上编译用什么工具连接?

8980 次点击
所在节点    C++
84 条回复
lishoujun
2023-06-27 23:38:51 +08:00
之前在某互联网公司的时候,我的研发:
vim 编码 bcloud 编译
closedevice
2023-06-28 00:00:49 +08:00
@yidadaa neovim 可以配置远程开发?求教
archxm
2023-06-28 00:06:30 +08:00
在 win10 下弄,vscode ,安装 c++插件。
安装 mingw64. 把其所带的头文件夹删掉。
把 linux 各种头文件拷贝过来。
设置 c_cpp_properties.json ,弄强包含头文件,定义一些 linux 的特定宏,取消一些 windows 相关宏。
这样写代码时,就有相应的错误提示了。
写好代码,传到 linux 上,编译,gdb 调试。
archxm
2023-06-28 00:06:46 +08:00
#undef _WIN32
#undef __WIN32__
#undef _MSDOS
#undef _WIN64
#undef __MINGW32__
#undef _MSC_VER
#undef __i386__
#undef __GNUG__

#define _GNU_SOURCE
#define __linux__
#define __GNUC__ 4
//#define __GNUG__ 4
#define __WORDSIZE 64
#define __x86_64__
XxxxD
2023-06-28 00:08:31 +08:00
今天装好了 Arch linux, 我要说,arch is the best!!
应该是下个 sublime 就做一些简单的项目酱紫
ivvei
2023-06-28 00:21:27 +08:00
Archlinux + nvim + clangd + gcc
ivvei
2023-06-28 00:21:27 +08:00
Archlinux + nvim + clangd + gcc
yzbythesea
2023-06-28 06:36:44 +08:00
Ubuntu, Clion, Bazel
chaoschick
2023-06-28 07:51:35 +08:00
fedora gcc
dayeye2006199
2023-06-28 08:09:14 +08:00
ubuntu + neovim + cmake
litguy
2023-06-28 08:28:38 +08:00
笔记本跑 windows ,用 vscode remote
NUC 上面跑 linux
linux 下面就是标准的 GNU 套件
我们属于一个项目干 5 年的
ssh remote 打开工程写代码就行了
linux 也只是跑单元测试
剩下的功能测试要丢服务器上面去
NUC 只有 32GB 内存,8 代 i7
测试的服务器都是 384/512GB 的,64 核
staycoolsun77
2023-06-28 09:05:22 +08:00
@sbldehanhan vscode remote 远程连接服务器,可以直接在本地 vscode 上修改服务器上的代码,修改完 make 一下就好
zvl0reqglvd
2023-06-28 09:54:07 +08:00
archlinux+sway+zsh+tmux+nvim+firefox+obsidian
shayebushi
2023-06-28 14:50:35 +08:00
万物基于 vim
yidadaa
2023-06-28 16:15:43 +08:00
@daveh 当然可以建索引,但是建索引之前你得先编译一遍项目吧?编译一次 20 分钟,后面随便改点什么头文件,又得重新编译,一天下来净等编译了,还干不干活了。
yidadaa
2023-06-28 16:16:15 +08:00
@closedevice 直接 ssh 到服务器上,在服务器上配置好 neovim 开发。
bugmaker233
2023-06-28 17:25:54 +08:00
@yidadaa 好奇有多大?比 Linux kernal 还大?
daveh
2023-06-28 18:42:16 +08:00
@yidadaa #75 你们这用法不对,建索引并不需要先编译。
你们用的 CMake 还是 Makefile 或者其他构建工具?如果是 CMake 最好了,打开项目配置好工具链和依赖,建的索引就准确了,并不需要去编译;如果是 Makefile 也一样,加载后索引自动建立准确索引;其他构建工具,只要能输出编译数据库,也能加载建立准确索引。
CLion 加载的 CMake 、Makefile 工程,直接就能增量编译,改什么编译什么,不需要全量编译 20 分钟,怎么会一直等编译?其他构建工具,也可以自定义构建命令,只要你命令行能增量编译,CLion 中也能。
话说回来,你用其他编辑器 IDE ,难道改了代码能节省编译时间?而 CLion 中代码修改后,符号索引什么的都是自动刷新的。
yidadaa
2023-06-29 11:25:22 +08:00
@daveh #78 看来你不太清楚这些 IDE 是怎么建索引的。上世代 vim 依赖 ctags 建立符号索引,非常不准确;本世代 IDE (包括各种集成 lsp 的编辑器)都依赖编译器生成的 compile_commands.json 来建立符号索引,这种索引是由编译器在编译项目期间收集的符号信息,非常准确,当然有一些静态分析工具可以使用其他方法建索引,但现在主流的 IDE 基本都是依赖 compile_commands.json ,这个文件必须要完整编译一遍整个项目才能生成,也就是你说的“编译数据库”。

其次,你把增量编译想得太好了,如果具体项目中没有做过依赖治理,各个文件之间的依赖基本就是一坨,尤其是改动头文件之后,所有依赖这个头文件的下游文件(.h / .cpp )都需要重新编译。

最后,我的第一条回复不是在说 Clion 之外的 IDE 能节省编译时间的问题,而是大型 CPP 项目基本不可能在本机编译,只能靠专门的高性能开发机来编译,这就需要 IDE 的远程开发体验必须得好,目前远程开发这块,Clion 基本没法和 VSCode 比。
yidadaa
2023-06-29 11:27:33 +08:00
@bugmaker233 Linux Kernel 里面都是 C 啊,C 编译起来比 CPP 不知道快到哪里去了,CPP 里稍微玩点宏、模板,引点什么标准库,编译时间就起飞了。

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

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

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

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

© 2021 V2EX