zealerzxx
V2EX  ›  Apple

求解 MAC 下 C++单文件编译最优方式

  •  
  •   zealerzxx · Jul 10, 2017 · 6926 views
    This topic created in 3414 days ago, the information mentioned may be changed or developed.

    求解 MAC 下 C++单文件编译最优方式

    以前是用 WINDOWS 的,里面的 dev 和 codeblocks 写一些单个文件的 C / C++算法很舒服 后来换了 MBP,一直都用着新建工程。现在突然想刷刷 OJ,每个题目都建一个工程感觉很麻烦 请问:有没有丝滑柔顺的解决方法。

    目前尝试的方法有:xcode ,clion ,sublime 3 最接近但是不能输入。还有不会 VIM,搞不来 VIM

    43 replies  •  2017-07-12 20:04:48 +08:00
    xvimer
    xvimer
    Jul 10, 2017
    1
    CodeRunner
    takeoffyoung
    takeoffyoung
    Jul 10, 2017
    2
    MS Visual Code, control+` 呼出 terminal
    ben2ex
    ben2ex
    Jul 10, 2017
    3
    Visual Studio Code,配置 task.json,见 https://go.microsoft.com/fwlink/?LinkId=733558
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    4
    @xvimer 贵!
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    5
    @takeoffyoung 然后手动编译链接吗
    hxsf
    hxsf
    Jul 10, 2017
    6
    @zealerzxx #5 单文件你链接啥?

    直接
    g++ a.cpp -o a 回车 // 根据需要自己加点别的编译参数
    ./a 回车

    c 就用 gcc
    tyfulcrum
    tyfulcrum
    Jul 10, 2017 via iPhone
    7
    cc filename
    或者
    c++ filename
    ./a.out
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    8
    @hxsf 嗯 可以,最好有一键保存 编译 运行的
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    9
    @tyfulcrum 还有这种奇技淫巧!! 厉害
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Jul 10, 2017
    10
    gcc test.c -o test
    ./test
    Tunar
    Tunar
    Jul 10, 2017 via Android
    11
    楼上才是正解😒身边一堆安个 xcode 只为 c 语言刷 oj,,
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    12
    @ben2ex 大致看了一下,有没有现成的方案 心态崩了
    skadi
    skadi
    Jul 10, 2017 via Android
    13
    vscode
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017
    14
    @Tunar 整个 OS X 平台,没有 CB Dev 替代产品?
    earther01
    earther01
    Jul 10, 2017 via iPhone
    15
    sublime 可以整合编译器的,不过我一般都是直接 g++
    UnisandK
    UnisandK
    Jul 10, 2017
    16
    CodeRunner,谁用谁知道
    荔枝卖 79,比官网还便宜不少了
    deepjia
    deepjia
    Jul 10, 2017
    17
    直接 c++/g++ filename 还不够简单么?
    不知道为什么你会觉得是奇技淫巧,不指定输出的文件名,自然就用默认文件名 a.out 了啊……
    zealerzxx
    zealerzxx
    OP
    Jul 10, 2017 via iPhone
    18
    CodeRunner 试用中 ,感觉要上天
    takeoffyoung
    takeoffyoung
    Jul 10, 2017
    19
    @zealerzxx 你如果愿意,还可以自己撸个插件,填好输入输出,一键运行还能比对样例是否通过。
    kAzec
    kAzec
    Jul 10, 2017
    20
    用 make 命令也行。比如 test.cpp:

    ```
    make test
    ./test
    ```

    不需要写 Makefile,配合 st3 或 atom 的 build system 可以做到 CMD+R 一键编译运行。
    clavichord93
    clavichord93
    Jul 11, 2017
    21
    @zealerzxx 6 楼和 7 楼说的是一回事啊,这算什么奇技淫巧。。。而且你作为一个计算机从业者(计算机专业在读生),开个终端输条命令麻烦吗?
    kingcos
    kingcos
    Jul 11, 2017
    22
    要是楼上的都觉得麻烦,CB 有 Mac 版吧。。
    yangff
    yangff
    Jul 11, 2017
    23
    谁告诉你 sublime 不能输入的了……

    LZ 可能读了个假的计算机科学……
    hackpro
    hackpro
    Jul 11, 2017
    24
    alias cpp='clang++ -std=c++11 -stdlib=libc++ -Weverything'
    cpp xxx.cpp
    MCVector
    MCVector
    Jul 11, 2017 via Android
    25
    make {source without extension}
    tangbao
    tangbao
    Jul 11, 2017 via iPhone
    26
    推荐一个不用新建工程的小型 IDE,geany.org 。
    porrat
    porrat
    Jul 11, 2017 via iPhone
    27
    GenericMakefile
    messyidea
    messyidea
    Jul 11, 2017 via Android
    28
    geany 应该是正解
    vingz
    vingz
    Jul 11, 2017 via Android
    29
    涨姿势了,正需要,vs 原来可以打开 terminal
    fyibmsd
    fyibmsd
    Jul 11, 2017
    30
    #/bin/bash
    FILE=$1
    CC="cc"
    DIR=/tmp/exec

    if [ ! -d $DIR ]; then
    mkdir $DIR
    fi

    FILENAME=${FILE%%.*}
    $CC $1 -o $DIR/$FILENAME
    $DIR/$FILENAME
    QAPTEAWH
    QAPTEAWH
    Jul 11, 2017 via iPhone
    31
    一个工程,然后 git branch
    elgoogelgoog
    elgoogelgoog
    Jul 11, 2017
    32
    @Tunar 哈哈,+1
    然而直接 sumlime 来写更方便
    missdeer
    missdeer
    Jul 11, 2017
    33
    都说是 mac 了,上面怎么还在 gcc !
    正确姿势不应该是`clang -o test main.cpp`么!
    UnknownR
    UnknownR
    Jul 11, 2017
    34
    gcc 或者 g++吧,你用 homebrew 安装个就行,直接在 sublime text 或者 vs code 里写好,然后调成 terminal,再编译就行,单个文件而已,足够了,没必要去装个超大的 ide
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Jul 11, 2017
    35
    @missdeer #33
    mac 就不能 gcc ?

    $ which gcc
    /usr/bin/gcc
    $ which clang
    /usr/bin/clang
    $ ls -la /usr/bin/gcc
    -rwxr-xr-x 1 root wheel 18288 6 28 11:38 /usr/bin/gcc
    $ ls -la /usr/bin/clang
    -rwxr-xr-x 1 root wheel 18288 6 28 11:38 /usr/bin/clang
    eqing
    eqing
    Jul 11, 2017
    36
    gcc
    missdeer
    missdeer
    Jul 11, 2017
    37
    @littleylv 能 gcc 啊,但 mac 上的 gcc 是个很多年前的老版本,用 clang 才是好的 practice
    haogefeifei
    haogefeifei
    Jul 11, 2017
    38
    用 cc 命令编译就是了。。。。
    porrat
    porrat
    Jul 11, 2017
    39
    @missdeer mac 上的 gcc 是 clang 的别名
    huoru
    huoru
    Jul 11, 2017
    40
    @missdeer brew 的 gcc 是最新的
    $ gcc-7 -v
    Using built-in specs.
    COLLECT_GCC=gcc-7
    COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/7.1.0/libexec/gcc/x86_64-apple-darwin16.5.0/7.1.0/lto-wrapper
    Target: x86_64-apple-darwin16.5.0
    Configured with: ../configure --build=x86_64-apple-darwin16.5.0 --prefix=/usr/local/Cellar/gcc/7.1.0 --libdir=/usr/local/Cellar/gcc/7.1.0/lib/gcc/7 --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-7 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --enable-checking=release --with-pkgversion='Homebrew GCC 7.1.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --disable-nls
    Thread model: posix
    gcc version 7.1.0 (Homebrew GCC 7.1.0)
    init
    init
    Jul 11, 2017
    41
    直接 gcc
    aristotll
    aristotll
    Jul 11, 2017
    42
    楼上说的对

    gcc --version
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 8.0.0 (clang-800.0.42.1)
    Target: x86_64-apple-darwin16.6.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
    everettjf
    everettjf
    Jul 12, 2017
    43
    Visual Studio Code
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1870 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 07:57 · PVG 15:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.