5

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

 10 months ago
source link: https://www.v2ex.com/t/951941
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  C++

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

  sbldehanhan · 10 小时 21 分钟前 · 2554 次点击

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

54 条回复    2023-06-27 18:14:12 +08:00
weidaizi

weidaizi      10 小时 13 分钟前

archlinux, vim/nvim, 都有, (没看懂, 要表达链接?还是工具链?还是用什么登录服务器?)
x1596357

x1596357      10 小时 10 分钟前

Ubuntu, Qt Creator, 本地编译,CI 服务器编译。GCC and Make 。
yolee599

yolee599      10 小时 7 分钟前

操作系统:目前用 ArchLinux
IDE:没用 IDE ,只用了文本编辑器
编译环境:小工程就在本地编译,大工程(比如 linux kernel ,android )用公司的服务器编译
工具链:写一些 pc 端小工具用自带的 gcc ,嵌入式 arm linux 一般是用 arm-linux-gnueabihf
angryPHP

angryPHP      10 小时 7 分钟前

clion + Linux 虚拟机
kaedeair

kaedeair      10 小时 6 分钟前

Fedora ,Qt Creator/CLion,本地编译,编译器用 GCC ,构建工具用 cmake 和 ninja
c2const

c2const      10 小时 3 分钟前

准备两台电脑,一台 windows ,一台 linux. :)
sbldehanhan

sbldehanhan      9 小时 55 分钟前

@yolee599 用公司服务器编译是怎么操作?把文件传上去,然后 ssh 去 make 吗?有没有更舒服的方式?
sbldehanhan

sbldehanhan      9 小时 54 分钟前

@angryPHP clion 真的很好用。是把编译运行工具配成虚拟机吗?
sbldehanhan

sbldehanhan      9 小时 49 分钟前

@weidaizi 就是编辑、调试都在自己手里的一台电脑上。还是在远程服务器上?工程大了,需要的软件包和工具比较多。把这些都配置在自己的电脑上,感觉吃不消。
changnet

changnet      9 小时 48 分钟前

@sbldehanhan 服务器不都是把代码 check 下来直接 cmake 或者 make 吗?又不需要在上面写代码,为啥要编辑器?我们的服务器连桌面都不装的
sbldehanhan

sbldehanhan      9 小时 44 分钟前

@changnet 那你的所有编译、运行环境都在本地?服务器只是存代码的,相当于 github 或者其他文件服务器?
duke807

duke807      9 小时 42 分钟前 via Android

gentoo
eclipse 纯编辑
make 命令编译
服务器和本机没区别
Noicdi

Noicdi      9 小时 42 分钟前 via iPhone

自用的是 windows11+wsl2 ,wsl2 安装 arch Linux ,windows 上通过 vscode 链接到 wsl ,源码全部在 wsl 上,clangd 结合编译数据库
dreasky

dreasky      9 小时 39 分钟前

大佬都是记事本手搓操作系统代码的 要啥开发环境
bfdh

bfdh      9 小时 37 分钟前

ubuntu + gcc + sourceinsight
hokori

hokori      9 小时 34 分钟前

有服务器,不写界面。 那直接 vsc remote 开发不就好了吗 完全不受平台闲置 mac win linux 都可以快速进入开发模式
hankai17

hankai17      9 小时 31 分钟前

linux 环境 + vim
不用 IDE 代码看得时间长了很熟 知道函数在哪个位置
fkl123

fkl123      9 小时 31 分钟前

Windows11 + Docker ( WSL2 Backend ),源码放在 volume 里,公司提供了一个编译环境的 Docker 镜像,load 到本地,启动一个容器,挂载源码 volume ,用 VSCode 连接到容器环境进行开发和编译。
silkriver

silkriver      9 小时 22 分钟前

推荐 cern root 带有 c++ 解释器还能用于 jupyter
jmc891205

jmc891205      9 小时 12 分钟前

我们工程太大 单机编译太慢
只能在服务器上搞分布式编译
bruce0

bruce0      8 小时 54 分钟前

win10 + VM + debian12 + clion + GCC/clang
yolee599

yolee599      8 小时 48 分钟前

@sbldehanhan #7 对,ssh 上去,公司服务器配置比较高,编译大工程比较快
sanjay2023

sanjay2023      8 小时 41 分钟前

centos + nvim coc + cmake, 本地 mac iterm 连 centos
Hengtang

Hengtang      8 小时 37 分钟前   ❤️ 1

所有流程基本都在 VSCode 里完成。
1 、开发环境:嵌入式 linux 设计到各种芯片的 SDK ,对操作系统版本也有要求,所以每种芯片搭建一个 Docker 开发环境,根据 SDK 要求使用不同版本的 Linux 镜像作为底层容器,SDK 和自己的工程路径放到宿主机上并挂载进开发容器。宿主机为一台 Ubuntu Server 的开发用服务器。
2 、本地开发环境:操作系统 Deepin 20.9 ,选 linux 作开发机是因为会大量使用 Docker 和 shell 工具,在 linux 下体验会好很多。选 Deepin 的原因是微信和 QQ 之类软件目前还是必须要用,用 Deepin 会少很多问题,装个 Wine 运行器的话很多 Windows 小工具也能双击直接运行。
3 、编辑、编译、部署工具:VSCode 。VSC 可以远程连接开发用服务器上的 Docker 开发环境,局域网环境下体验跟本地开发基本一致。编译、部署等在开发阶段直接通过自己编写的 VSCode 的 task.json 脚本化运行,在 VSCode 内直接快捷键调用。
4 、远程调试:VSCode 。VSCode 的 task.json 里可以添加通过 SSH 远程运行 shell 指令来启动远程目标设备上的 GDB Server ,在 launch.json 中定义好远程目标设备的 IP 和 GDB server 端口等信息后就能直接在 VSC 中 F5 进行远程调试。
5 、CI/CD:Drone + Gitea 。VSCode 有 Drone 插件可以一键构建部署等。
jackmod

jackmod      8 小时 34 分钟前

个人项目在 devcontainer 里起步,github 代为 CI
用了 docker 之后系统就尽量不装开发环境了
Yuan2One

Yuan2One      8 小时 33 分钟前

Windows clion+linux 服务器
直接在 clion 里配置好远程服务器,然后就可以同步代码,构建,debug 等操作了,也可以在服务器上启 docker 然后操作
很舒服的点在于 linux 服务器不需要配置什么东西,然后 clion 相当于一个代码的图形界面
L4Linux

L4Linux      8 小时 31 分钟前

Emacs + Eglot + Clangd
Jirajine

Jirajine      8 小时 31 分钟前

Archlinux + vscodium + clangd +lldb
一般本地调试为主,也可以通过 ssh 远程调试。
yidadaa

yidadaa      8 小时 30 分钟前

大型项目(本地 MacBook 要编译 20 分钟以上的项目都算,无论什么原因导致的)只能在开发机专用服务器上开发,几百个核拉满,只在本地开发基本干不了活,索引都建不起来。

CLion 基本对于这种项目无能为力,JB 的远程开发体验就是一坨,团队内使用统一的 VSCode 配置,使用 VSCode Remote 开发,我自己用 NeoVim + coc 插件开发。
loken2020

loken2020      8 小时 16 分钟前

做 C/C++ 开发,最好可以熟悉各种编译开发环境,例如 msys2 ,vs2019 ,clion 等等。
mingl0280

mingl0280      8 小时 8 分钟前 via Android

Win10+Visual Studio/VSCode+CMake+WSL1+远程物理机
我们那代码要“看熟了还记得住位置”得啥都不干光背几年的,调试不上 VS 或者 VSC 在 linux 上简直是灾难——虽然我自己用 gdb 用得飞起但是这种能力没法推广给全组啊
exch4nge

exch4nge      7 小时 56 分钟前

本机 mac ,用 vscode remote ssh 连上 centos 7 开发机,编译用 gcc / clang ,构建用类似 bazel 的,分布式编译,有缓存。vscode 上主要用 clangd 插件。
weeei

weeei      7 小时 3 分钟前

搭车问一下,在 Linux 上选 clang 而不是 gcc 做开发的话,会有什么坑吗?
yangxin0

yangxin0      7 小时 2 分钟前

公司:Mac + Ubuntu 服务器
家里:PC + WSL2
weeei

weeei      7 小时 2 分钟前

主要是看上 clang 可以使用 block 这个语言扩展。
foxtalk

foxtalk      6 小时 53 分钟前

开发机:linux mint
代码编辑:mac ,vscode ssh 连接到 linux mint 编辑代码,编译都是在 linux mint 上
zhuangzijun1996

zhuangzijun1996      6 小时 50 分钟前 via Android

vscode devcontainer 要啥交叉编译工具就下啥 一个 Makefile 全搞定 做 ci/cd 也方便
mybyons

mybyons      6 小时 25 分钟前

其实这个问题可以借鉴大厂的开发环境配置(Google, FB...)

Google C++ 团队用 bazel 统一管理, 各位提到的痛点基本都能解决,(大型项目用 bazel cache 加速...)...

个人项目也在转向了 bazel, 编译器版本管理,打包,发布 都非常的优雅

缺点就是需要自己花费几天的时间熟悉 bazel 个人还是非常推荐
sbldehanhan

sbldehanhan      5 小时 41 分钟前

@yolee599 那怎么调试呢?用 gdb ?
cnbatch

cnbatch      5 小时 37 分钟前   ❤️ 1

我不是大佬,所以不做纯 Linux 编程,只能做点跨平台小应用顺便兼容 Linux 的程序。
(尤其是公司内只做 Windows 开发,完全不符合 OP 提问,因此就不谈了)

于是我日常 Windows + Visual Studio + git 管理代码,Visual Studio 写好了测试完了再去 posix 系统做编译+测试。
顺序是:
Windows → FreeBSD → Linux
通常在 FreeBSD 测试完了,Linux 基本上都能过,偶然有些小问题的时候再针对性地改。

Windows + Visual Studio 时,自然是 sln 文件管理一切。然后是 CMakeLists.txt ,在 POSIX 系统编译时会用到。
因此在 POSIX 平台是用 cmake + git + 代码编辑器(如 VSCode )。

为什么先测 FreeBSD 再去 Linux ?
1 、我本身就用着 FreeBSD 及其衍生系统,那肯定要照顾到
2 、FreeBSD 同样也是 POSIX 系统
3 、BSD 全系列自带编译器和调试器工具链,不需要单独安装
4 、Linux 发行版过多,glibc 的版本号也是,我怕某个发行版测试完成后,换成另一个 Linux 发行版又出问题,然后还不知道到底是我的问题、还是第三方库的问题、或是 glibc 的问题、甚至是不是发行版的问题

至于非 Windows 平台的 debug ,我个人是手动使用 LLDB ,尽管不怎么熟练。GDB 用得比较少,因为大多数 POSIX 环境 bug 都在 FreeBSD 测试时解决完了。

真要在 Linux 测试的话,通常以 Debian 虚拟机为先。当然了,其它系统比如 Fedora, Alpine 在有必要的时候也会测一测。

而且我发现跨平台应用的终极 debug 方式,是输出一堆 Log ,然后再从故障位置根据 Log 内容往回排查。
其次是挂着调试器让它运行到故障位置,这个普通常规调试方式,大家都用过,经验比我还丰富。

没办法,因为我不是大佬。
tingyunsay

tingyunsay      5 小时 28 分钟前

vim 自己装点插件
clemente0731

clemente0731      4 小时 51 分钟前

vscode+clang+各种插件+remote 到服务器
daveh

daveh      4 小时 44 分钟前 via iPhone

@yidadaa #29 怎么会跑不起来呢? clion 加点运行内存就行了,大型项目一样跑。索引只是打开工程时建一次,而且首次索引是粗略索引,详细索引是打开文件后按需做的。
hhjuteman

hhjuteman      2 小时 54 分钟前

clion + docker
promontory123

promontory123      2 小时 19 分钟前

vscode remote ssh 连接 Linux 服务器,编译 Cmake
buffzty

buffzty      2 小时 18 分钟前

windows + clion ( run on remote ubuntu ), c 环境用来 conan 配置,一般使用 gcc 10.
这应该是最佳方案了,linux 桌面 bug 真的多,而且很多 bug 都是没有解决方案的
elechi

elechi      2 小时 8 分钟前

vscode remote, gcc, gdb, xmake, cmake
786375312123

786375312123      2 小时 7 分钟前

以前用 visual studio ,后来用了段时间 clion ,现在就 vscode+插件,真好用
hsfzxjy

hsfzxjy      2 小时 1 分钟前 via Android

直接在 ubuntu 用 vscode
tool2d

tool2d      2 小时 1 分钟前

我用 unreal 的跨平台方案 ( https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/Linux/GettingStarted/)

也就是 windows 开发,然后调用 unreal 的交叉编译工具。

调试无所谓,一般 log 能解决 95%的问题。实在不行,最后再上 gdb remote ,这种情况很少。
LXGMAX

LXGMAX      1 小时 50 分钟前

vim + gnu gcc g++一把梭哈
99999999999

99999999999      1 小时 48 分钟前

clion + vcpkg + linux 虚拟机

本来用的 vs ,但是 vcpkg 总是出问题,换了 clion 舒服了
tu9oh0st

tu9oh0st      1 小时 46 分钟前

clion + Linux 虚拟机
tairan2006

tairan2006      1 小时 28 分钟前

clion + wsl

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK