V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0xljh
V2EX  ›  程序员

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

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

    通过 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++
    111qqz
        12
    111qqz  
       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   ·   实用小工具   ·   2644 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:20 · PVG 18:20 · LAX 02:20 · JFK 05:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.