• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wsds
V2EX  ›  程序员

初学 C,被编译搞懵逼了

  •  
  •   wsds · Jul 31, 2018 · 8669 views
    This topic created in 3018 days ago, the information mentioned may be changed or developed.
    windows 上,下载的 mingw 中的 g++编译的,看别人都是 makefile 编译的,搞不懂
    请教一下大家,初学的话,怎么编译自己写的代码?
    Supplement 1  ·  Jul 31, 2018
    多谢各位推荐
    56 replies  •  2018-08-01 13:40:01 +08:00
    loqixh
    loqixh
    Jul 31, 2018
    1
    windows 用什么 mingw
    vs2017 不更好?
    youngxu
    youngxu
    Jul 31, 2018 via Android
    2
    dev-c++你值得拥有
    wsds
    wsds
    OP
    Jul 31, 2018
    3
    @loqixh 装了 vs2013,编译是可以编译,但不喜欢的是,vs 运行自己写的代码不在内置控制台输出,而是在 cmd 窗口,不太喜欢这个交互方式,而且觉得初学太这个工具太庞大了
    wizardoz
    wizardoz
    Jul 31, 2018
    4
    那就先学一下 makefile 嘛
    如果不学的话:
    g++ hello-world.cpp -o hello-world
    也可以啊
    misaka19000
    misaka19000
    Jul 31, 2018
    5
    makefile 还是需要调用 gcc 的,学编程要学会善用搜索
    crack105
    crack105
    Jul 31, 2018 via Android
    6
    用 devc++吧,容易用,对新手友好
    zynlp
    zynlp
    Jul 31, 2018 via iPhone❤️1
    7
    直接回答楼主问题,我是怎么编译的:
    1、windows 下 vscode 写代码;
    2、windows 写 Makefile ;
    3、同步到服务器上 make ;
    4、gdb 调试
    5、如果有 bug,重复 1 到 4 ;
    搞定
    easylee
    easylee
    Jul 31, 2018 via Android
    8
    新手学 C,硬要上 IDE,主推 CODE::BLOCKS。
    VVVVVEX
    VVVVVEX
    Jul 31, 2018❤️1
    9
    那就不要学了,去学 js 吧
    innoink
    innoink
    Jul 31, 2018 via Android
    10
    首先找个靠谱的书
    waruqi
    waruqi
    Jul 31, 2018
    11
    可以用 xmake,进入你的代码目录,直接运行:xmake run 就好了,会自动检测你的源码就够,给你生成一个类似 makefile 的 xmake.lua 文件,然后自动编译和运行。

    配合 vscode/intellij-idea/sublime 效果更佳,都有相关 xmake 插件提供。

    https://github.com/tboox/xmake
    hyyou2010
    hyyou2010
    Jul 31, 2018❤️1
    12
    如果初学,必然不会有很多的 C 文件,那么就如同前面某位同学说的,直接编译就行了:
    g++ hello-world.cpp -o hello-world

    等你学到一定程度的时候再学 makefile,会写最简单的 makefile 即可,里面有最简单的依赖关系的
    现在没必要花时间在 makefile 上
    hyyou2010
    hyyou2010
    Jul 31, 2018
    13
    另外,推荐安装 VirtualBox 虚拟机,在其中安装 linux,然后在 linux 环境里面学习 C 语言
    metorm
    metorm
    Jul 31, 2018 via Android
    14
    要么就先拿 vs 用着,要么就研究 cmake/make 清晰概念。dev-c++强烈不建议。
    MeteorCat
    MeteorCat
    Jul 31, 2018 via Android
    15
    网络相关编程,最好告别 mingw,用纯正 linux
    JerryCha
    JerryCha
    Jul 31, 2018
    16
    初学用 Code::Block,带 mingw 版本的。初学玩啥命令行编译哟。
    dongxiaozhuo
    dongxiaozhuo
    Jul 31, 2018
    17
    既然是初学 C,就别被周遭的工具所干扰了视线。Windows 上 devcpp 或者 visual studio 社区版就行。用 IDE 的好处就是 debug、编译一步走。熟悉了用 C 写代码,搞懂了数据结构,周遭的工具使用,阅读一下文档就知道如何用。

    初学者别被周围工具的问题,吸引走注意力。
    jowuIM
    jowuIM
    Jul 31, 2018
    18
    建议认真考虑#16 #17,主要是因为因为 windows 下 C 编程真的挺吃力的,特别是初学者。编程环境的事情有时候真的很复杂,利用 IDE 屏蔽环境的问题,学习语法,数据结构和一个算法什么的更重要。
    tao1991123
    tao1991123
    Jul 31, 2018
    19
    新手学 C 用 code::blocks 吧 先学 C
    shijingshijing
    shijingshijing
    Jul 31, 2018 via iPhone
    20
    新手还是虚拟机+linux 吧,微软自己给 c/c++造了不少轮子,mfc 什么的。最奇葩的是.Net 托管的 c++,语法直接惨不忍睹。
    zhangqx
    zhangqx
    Jul 31, 2018
    21
    vscode 不是更好?
    Tyanboot
    Tyanboot
    Jul 31, 2018
    22
    要么 VS, 要么 CLION

    后者满足你说的在内置控制台输出.

    另外 cmd 就是 Windows 的控制台, vs 创建的时候的类型选择控制台程序就是在 cmd 输出的.

    另外 2018 年了为什么要装 vs2013? vs2017 社区版了解下? 只要 c++只需要不到 5G.

    另外用 devcpp/code::blocks 还不如用 clion.
    jmc891205
    jmc891205
    Jul 31, 2018
    23
    初学用不着 makefile
    Howlaind
    Howlaind
    Jul 31, 2018
    24
    markfile 是在后来文件太多、依赖关系复杂、编译参数太长,不愿意弄(弄起来也容易出错)的时候用的。初学还没必要用,就编译一个文件,上 markfile 反而麻烦。
    当你觉得直接敲 g++命令敲得手酸的时候,再来看看 makefile 吧。
    wlgq2
    wlgq2
    Jul 31, 2018
    25
    codeblocks IDE 自带 mingw 安装包 100M,还能根据工程生成 makefile。
    zhangpeter
    zhangpeter
    Jul 31, 2018
    26
    dev-c++
    +1
    zitengdu
    zitengdu
    Jul 31, 2018
    27
    Ubuntu + CMake + Sublime + Shell
    学生帐号再加一个 CLion
    seancheer
    seancheer
    Jul 31, 2018
    28
    makefile 完了还有 cmake,又是一个自动生成 makefile 的工具,你要把你大把的时间花费在工具上么?

    学 c 为什么不关注 c 本身,却在这些工具上纠结?
    tt67wq
    tt67wq
    Jul 31, 2018
    29
    makefile 有好些自动生成的工具的,不用自己写的
    mrcn
    mrcn
    Jul 31, 2018 via Android
    30
    devc++。嫌弃太古老了也可以用 vscode 加上右键运行的那个插件。
    chinawrj
    chinawrj
    Jul 31, 2018
    31
    建议 gcc 编译,ide 会让你搞不懂 C
    suikator
    suikator
    Jul 31, 2018
    32
    28 楼说的对 把重点放到 C 和 Linux 上面 windows 全是坑
    liangzi
    liangzi
    Jul 31, 2018 via Android
    33
    想起了当初我学 C 在 Linux 系统上 然而网上教学几乎都是 Windows 系统 碰到一些头文件还没有 好歹有个 Google 解决问题就靠搜...
    ai277014717
    ai277014717
    Jul 31, 2018
    34
    vs 省心啊。makefile 用到再说吧。
    slowman
    slowman
    Jul 31, 2018
    35
    找一本靠谱的书,选择一个工具,慢慢学
    别把时间浪费在摆弄各种工具上
    psychoo
    psychoo
    Jul 31, 2018
    36
    好像 code::blocks 是最严格的吧……适合初学
    loqixh
    loqixh
    Jul 31, 2018
    37
    @wsds 如果你要用 linux api 把 wsl 打开或者开虚拟机 vs 配置成 ssh 即可 远程编译 远程调试
    只要学 c api 用不着 linux 别被上面的骗了 初学者我相信用不着 linux api
    Loren
    Loren
    Jul 31, 2018 via Android
    38
    vscode+wsl,你要的都满足
    loqixh
    loqixh
    Jul 31, 2018
    39
    @zynlp vs 配置下 可以自动远程连接 linux 编译运行调试, 更方便
    tushankaka
    tushankaka
    Jul 31, 2018 via Android
    40
    linux,gcc,vim 就可以了
    SonicY
    SonicY
    Jul 31, 2018 via Android
    41
    别在 Makefile 上下太多功夫,写到吐,以后可以用 CMake 之类的工具。
    kevinhwang
    kevinhwang
    Jul 31, 2018 via Android
    42
    别深入学 c,浪费时间,了解基本语法和指针写刷算法即可。
    c 对计算机底层也没什么大的帮助,反而会陷入底层的深渊,还是从高层应用向下学更好。
    尽快学 java,生态非常好,多点看开源项目源码。
    mmdsun
    mmdsun
    Jul 31, 2018 via Android
    43
    推荐 visual studio 2017 宇宙最强 IDE
    shijingshijing
    shijingshijing
    Jul 31, 2018
    44
    @kevinhwang 不同意,底层还是要看的,计算机架构方面 X86 和 ARM 可以作为 CISC 和 RISC 的典型仔细看看,其他类型的 CPU 就算了;操作系统方面重点看一下 Linux 就行了,Windows 不用看。如果想把这两样都玩熟,都需要 C 的基础,否则再往上和高级语言之间就缺了一层,衔接不起来。
    young6
    young6
    Jul 31, 2018 via Android
    45
    makefile 是为了自动编译大型项目。你现在只是写些小 demo 直接 gcc 即可。另外,windows 下个人认为不适合写 c,写 c++比较合适。写 c 还是 linux 方便。
    hatsuyuki
    hatsuyuki
    Jul 31, 2018
    46
    要在 Windows 上用 Makefile
    1.安装 MinGW-W64 ( https://www.cnblogs.com/findumars/p/8289454.html)
    2.在 MinGW-W64 下的 bin 目录找到 mingw32-make.exe ,复制一份,改名为 make
    3.根据这份 跟我一起写 Makefile (PDF 重制版) ( https://pan.baidu.com/s/1zWmehuHvcCeyDIzota4Jcg) 写 makefile
    HarveyDent
    HarveyDent
    Jul 31, 2018
    47
    初学:用 IDE 或者用 Linux。你为何偏偏要选最蛋疼的 mingw。。。新手千万不要去搞什么 makefile。。。这些工具分分钟让你从入门到放弃。
    hatsuyuki
    hatsuyuki
    Jul 31, 2018
    48
    还有推荐在 Windows 平台使用 Cmder 替代系统 cmd
    bumz
    bumz
    Jul 31, 2018
    49
    其实吧
    装个虚拟机,虚拟机里装个 Ubuntu,就行了
    20015jjw
    20015jjw
    Aug 1, 2018 via Android
    50
    新手别用 Windows 别用 ide
    老老实实开个 Linux/mac 开个 shell 弄个 sublime/atom/vs code 就行
    orc
    orc
    Aug 1, 2018 via iPhone
    51
    vc➕➕6.0
    guolaopi
    guolaopi
    Aug 1, 2018
    52
    @orc +1..VC 够你用了。。。再说 CMD 招你了。。。
    jagger2048
    jagger2048
    Aug 1, 2018
    53
    个人看来,新手学 C 最好直接上 IDE ( VS studio,dev c++,codeblock 等),然后专注于 数据结构与算法 这些的入门 [如果不是用来搞单片机的话] ,打好编程功底,不要一开始就折腾环境带偏了,要想清楚你是干啥的。在学有小成开始看开源项目或者自己折腾其他小东西的时候再用到啥学啥, 直接开 linux 虚拟机 上 shell 真是劝退
    NCE
    NCE
    Aug 1, 2018
    54
    真羡慕现在的小孩子。。。还有时间学 C。。。

    我上次这么学是 15 年前了,后来发现,这玩意看看语法还行,真要做出东西来怕是胡子都白了。。。

    然后转学 C#,一直到现在。
    macha
    macha
    Aug 1, 2018
    55
    直接上 IDE,新手别去折腾工具链,要不然折腾半天一句代码没写已经把自己绕晕了。windows 强推 VS2017 社区版。
    allgy
    allgy
    Aug 1, 2018
    56
    c: gcc test.c -o test
    c++: g++ test.c -o test
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2695 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 00:26 · PVG 08:26 · LAX 16:26 · JFK 19:26
    ♥ Do have faith in what you're doing.