请问可以在 docker Linux 上开发 c/c++吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 I 生成的内容
0xljh
V2EX    程序员

请问可以在 docker Linux 上开发 c/c++吗?

  •  
  •   0xljh 2020-05-31 14:28:09 +08:00 4891 次点击
    这是一个创建于 1960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    通过 vscode remote 在 mac 上的 docker linux 上,感觉用虚拟机有点笨重?我是 c/c++新手,感谢各位

    22 条回复    2020-06-01 21:55:41 +08:00
    VDimos
        1
    VDimos  
       2020-05-31 14:32:51 +08:00 via Android
    可以的,
    silvernoo
        2
    silvernoo  
       2020-05-31 14:34:11 +08:00
    docker 不是虚拟机
    tottea
        3
    tottea  
       2020-05-31 14:40:38 +08:00
    可以的。。。
    我就是这样做的,把 gdb,cmake 之类开发工具的打包好做成镜像之后,每次开发就将工程文件夹映射到容器里开发
    dangyuluo
        4
    dangyuluo  
       2020-05-31 14:40:57 +08:00
    我司所有开发环境都是基于 Docker 的,简直不要太爽
    tottea
        5
    tottea  
       2020-05-31 14:43:14 +08:00
    然后可以用 JB 家的 deployment 功能,本机 Clion 改完之后实时同步到开发的服务器上,调试就 ssh 在 linux 上调试
    maemual
        6
    maemual  
       2020-05-31 14:45:08 +08:00
    讲道理 Mac 上的 docker 也是起了一个虚拟机再起 docker 。。。。
    BugenZhao
        7
    BugenZhao  
       2020-05-31 15:16:13 +08:00
    macOS 上的话,Docker 做开发环境好像比虚拟机并没有有太多优势……
    GeruzoniAnsasu
        8
    GeruzoniAnsasu  
       2020-05-31 15:23:33 +08:00 via Android
    我就是这么干的,host 是 mac,写 linux 的代码,把代码挂进去在 docker 里 make,调试还能用 clion
    WebKit
        9
    WebKit  
       2020-05-31 15:47:55 +08:00 via Android   1
    linux docker 就是虚拟机里开 docker 没啥优势
    sadfQED2
        10
    sadfQED2  
       2020-05-31 15:51:08 +08:00 via Android
    在 windows 和 mac 系统上面,docker 就是在 linux 虚拟机里面的
    foxkiller
        11
    foxkiller  
       2020-05-31 16:08:25 +08:00
    写要用 CUDA/CUDNN 的程序不要太爽 毕竟本地没法调。
    呃不一定写 CUDA/CUDNN 的程序都是 python 哈,自己手撸个 op 优化一下特殊的计算得用 C/C++
    midasplus
        12
    midasplus  
       2020-05-31 16:59:42 +08:00 via Android
    可以的,效率很高
    waruqi
        13
    waruqi  
       2020-05-31 19:18:12 +08:00 via Android
    可以的 我是 nvim+xmake
    livepps
        14
    livepps  
       2020-05-31 23:27:01 +08:00 via Android
    clion 远程开发,每次加载 cmake 跟本地比慢很多,除了这点,其他完美
    newtype0092
        15
    newtype0092  
       2020-06-01 00:18:09 +08:00
    @tottea 为什么不直接把编译的输出目录映射过去,在本地编辑,然后交叉编译,docker 只是个执行容器,感觉这样效率高点。
    ZZSZZSZZS
        16
    ZZSZZSZZS  
       2020-06-01 01:21:07 +08:00 via iPhone
    @silvernoo mac 和 win 上的 docker 就是起了一个虚拟机,win 还有一种模式是开一个容器就起一个虚拟机。
    tottea
        17
    tottea  
       2020-06-01 01:30:10 +08:00
    @newtype0092 因为不是很熟 C++的跨平台交叉编译,没试过。。。。我编辑代码的机器是 win,docker 的宿主机是远程的 linux 服务器,这样也可以交叉编译的吗,不是很懂
    Mithril
        18
    Mithril  
       2020-06-01 01:37:37 +08:00
    @tottea 可以的,VS 直接支持
    neoblackcap
        19
    neoblackcap  
       2020-06-01 02:34:05 +08:00
    @tottea 交叉编译不需要目标平台的机器,如果你用目标平台去编译你的程序,那么就是本地编译。交叉编译需要使用交叉编译工具。一般 C/C++, rust 这类系统语言,如果你剔除了对应平台的 API,或者用宏或者其他编译时的技术抹平了平台之间的差异。一般交叉编译的难度不大。
    newtype0092
        20
    newtype0092  
       2020-06-01 08:47:35 +08:00
    @tottea 可以的哈,之前搞游戏的时候,都是在电脑上编译,然后放到手机的 arm 上运行,装好交叉编译工具链和各种用到的类库就行。
    不过具体要看远程机器的性能怎么样,如果远程的机器配置特别高且空闲当然在那边编译好。
    HangoX
        21
    HangoX  
       2020-06-01 11:34:38 +08:00
    docker 其实没问题,不过 mac 上的 docker 也是轻量一点的虚拟机而已,其实没啥差别。
    tottea
        22
    tottea  
       2020-06-01 21:55:41 +08:00
    @Mithril
    @neoblackcap
    @newtype0092
    学到了,谢谢各位大佬
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2810 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:47 PVG 21:47 LAX 06:47 JFK 09:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86