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

Mac 上编写在 Linux 下运行的 c、c++程序,如何搭建开发环境

  •  
  •   ivito · 2016-02-27 11:42:01 +08:00 · 2994 次点击
    这是一个创建于 2974 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家都是怎么做的呢,有没有什么公认的最佳实践呢?
    30 条回复    2016-02-28 16:57:30 +08:00
    blue7wings
        1
    blue7wings  
       2016-02-27 12:11:11 +08:00
    vagrant 你应该需要这个东西
    mulog
        2
    mulog  
       2016-02-27 12:14:34 +08:00
    VM 里跑个 linux
    再加上 1 楼说的 vagrant
    congeec
        3
    congeec  
       2016-02-27 12:23:22 +08:00
    那得看你需求
    嵌入式 Linux ?你需要 crosstool-ng
    不依赖 LInux 特性的话,现在 OS X 开发,完了开 VM 调试就行
    依赖 Linux 特性的话,直接开 VM 搞吧
    7timesonenight
        4
    7timesonenight  
       2016-02-27 12:26:03 +08:00
    1 、虚拟环境,虚拟机,或者虚拟机+ vagrant
    2 、用 MacPorts 或者 Homebrew ,都可以装一些 Linux 开发需要的库。
    MacPorts 和 Homebrew 区别是: MacPorts 单独装一份库, Homebrew 直接用 Mac 自己的库。
    比如一个 /usr/lib/xxx 的裤, Mac 系统如果已自带, Homebrew 就使用这个自带的,如果 Mac 没有自带, Homebrew 会往 Mac 的 /usr/lib/目录下安装此库;
    MacPorts 则不同,完全和 Mac 自带系统库隔离,互不干扰,直接自己另装一份,比如默认装在 /opt/local/lib 下
    merito
        5
    merito  
       2016-02-27 13:01:39 +08:00
    @7timesonenight 纠正一个小错误。 homebrew 也是在 /usr/local/lib 下安装库的,准确地说是链接库就是了
    7timesonenight
        6
    7timesonenight  
       2016-02-27 13:05:08 +08:00
    @merito
    多谢。
    MacPorts 不是使用 Mac 系统默认库,是自己另装一份,在 /opt/local/lib 下。
    如果使用 MacPorts 安装依赖库的话,正如你所说,链接的时候不能用系统默认库路径。
    MCVector
        7
    MCVector  
       2016-02-27 13:25:10 +08:00
    自己写 CMakeLists 或者 makefile. 基本上和 Linux 上都是无缝的。主要看你用了哪些库。
    skydiver
        8
    skydiver  
       2016-02-27 13:32:50 +08:00 via Android   ❤️ 1
    别折腾了,像我一样给 Mac 装上 Fedora ,然后再也不觉得开发麻烦了
    skydiver
        9
    skydiver  
       2016-02-27 13:33:07 +08:00 via Android
    @skydiver 应该说 MacBook
    jsyangwenjie
        10
    jsyangwenjie  
       2016-02-27 13:40:03 +08:00
    vagrant
    htfy96
        11
    htfy96  
       2016-02-27 14:49:30 +08:00
    neoblackcap
        12
    neoblackcap  
       2016-02-27 14:54:37 +08:00
    建议虚拟机,主要是若是 C++的话,你换不同的编译器出来的效果差别很大, C 的话那到差别不大。因此你的程序若是仅在 Linux 下面跑,那么虚拟机是一个很好的选择。
    itfanr
        13
    itfanr  
       2016-02-27 14:58:52 +08:00
    搭建虚拟机或者买个阿里云等的主机
    ivito
        14
    ivito  
    OP
       2016-02-27 15:00:25 +08:00
    @itfanr 毕毕还在玩 vps 呢
    hardware
        15
    hardware  
       2016-02-27 15:04:15 +08:00
    docker 吧
    itfanr
        16
    itfanr  
       2016-02-27 16:35:04 +08:00
    @ivito 现在没时间捣鼓了。
    quietin
        17
    quietin  
       2016-02-27 16:38:37 +08:00
    很需要调试就直接装虚拟机,否则就 vagrant
    soli
        18
    soli  
       2016-02-27 18:07:29 +08:00
    顺便问一下,什么 App 会把 Vagrant 安装到 /Applications 下?

    今天清理 App 的时候突然发现一个 Vagrant ,还是在 /Applications 下。。。。
    hythyt9898
        19
    hythyt9898  
       2016-02-27 18:32:21 +08:00
    vagrant 和 docker 好像,还是用 docker 吧,名气大
    jackyuJ
        20
    jackyuJ  
       2016-02-27 18:41:49 +08:00
    jet brain clion
    tracyone
        21
    tracyone  
       2016-02-27 19:41:08 +08:00
    vim 加一些插件就搞定了,还有有时候跟不需要装虚拟机什么的,因为一般来说 linux 有的库 mac 下也有, gcc 什么的更是语法选项一模一样
    ilotuo
        22
    ilotuo  
       2016-02-27 21:44:30 +08:00 via Android
    你不讲清楚点害得大家瞎答
    oska874
        23
    oska874  
       2016-02-27 22:20:43 +08:00
    装个虚拟机就行了,没必要上 vagrant 这些
    junnplus
        24
    junnplus  
       2016-02-27 22:48:35 +08:00 via Android
    怎么那么少人推荐 docker 呢,这个必须 docker 呀
    rayyang88
        25
    rayyang88  
       2016-02-27 23:15:03 +08:00
    vagrant 好, docker 的话方便部署, vagrant 绝对是开发必备啊
    leeyiw
        26
    leeyiw  
       2016-02-27 23:35:54 +08:00
    买个 VPS
    taijia
        27
    taijia  
       2016-02-28 00:28:04 +08:00 via Android
    vagrant 省心 人生苦短 有这个时间 可以多写点东西
    ivito
        28
    ivito  
    OP
       2016-02-28 10:18:07 +08:00
    @blue7wings
    @mulog
    @7timesonenight
    感谢大家,经过一番试用后发现 vagarant 果然是神器, vagrant 中把虚拟机当做一个 box ,有很多已经做好的虚拟机镜像供大家使用。并且 vagarant 还提供 host 和虚拟机文件夹同步,网络端口数据转发,共享开发环境等等功能,非常适用于跨平台开发。
    JG
        29
    JG  
       2016-02-28 11:38:46 +08:00
    建立一个便捷高效的嵌入式 Linux 开发环境 http://jexbat.com/2016/Running-headless-vm/
    ivito
        30
    ivito  
    OP
       2016-02-28 16:57:30 +08:00
    @JG 大哥,能不能专业点,还没写完就发上来了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3469 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.