【问题标题】:How to compile and run a simple C program with Sublime Text 2?如何使用 Sublime Text 2 编译和运行一个简单的 C 程序?
【发布时间】:2012-04-21 00:25:14
【问题描述】:

我想用 GCC 编译一个简单的 C 程序。我需要在 sublime-build 文件中添加什么?

【问题讨论】:

  • 已经想出了如何做到这一点,但由于我在其他地方找不到正确的答案(无论如何都不适用于 Mac),我想我会在这里发布。
  • 另请参阅stackoverflow.com/questions/16490889/…,了解如何使用动态参数执行此操作(请参阅插件 InputArgs)

标签: c macos gcc sublimetext sublimetext2


【解决方案1】:

Mac OS X:

{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}

窗户:

{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}.exe"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}

【讨论】:

  • @Michael Anthony,感谢您的提醒:Windows 并添加“.exe”
  • 如何在运行时输入值?我的意思是如果我们使用scanf( ),如何在运行时从崇高文本中输入该指令的值?
  • 如果它让未来的编码人员有些头疼,我只想指出,您应该通过转到工具 > 构建系统 > 新构建系统而不是首选项配置将其放在构建系统配置文件中文件(首选项 > 设置 - 更多 > 特定语法)。
  • 就我个人而言,我在我的 Mac 上得到 clang: error: no input files,而在我的控制台中运行 gcc test.c -o test 是有效的。
  • @bafromca 我遇到了同样的问题 - 如果我修改它看起来像 Scott Fister 的答案,其中第一个命令是单个字符串,它似乎可以工作:"cmd": "gcc $file_name -o ${file_base_name}"
【解决方案2】:

接受的答案对我不起作用。

我所做的如下:

{
  "cmd" : ["make $file_base_name && ./$file_base_name"],
  "selector" : "source.c",
  "shell": true,
  "working_dir" : "$file_path",
}

shell设置为true意味着它将cmd读为一行,所以我调用make编译然后运行脚本。另一种选择是将shell 设置为false,但您无法运行多个cmd。所以我让它工作的唯一方法是让它用CMD + B创建文件,然后用CMD + Shift + B运行它:

{
  "cmd" : ["make", "$file_base_name"],
  "selector" : "source.c",
  "shell": false,
  "working_dir" : "$file_path",

  "variants": [
    {
      "cmd" : ["./$file_base_name"],
      "name": "Run"
    }
  ]
}

【讨论】:

    【解决方案3】:

    在 windows 中,使用 file_regex 编译并运行

    {
        "cmd": ["gcc", "$file_name", "-o", "${file_base_name}.exe", "&&", "${file_base_name}.exe"],
        "file_regex": "^([^:]+):([0-9]+):",
        "selector": "source.c",
        "shell": true,
        "working_dir": "$file_path"
    }
    

    【讨论】:

      【解决方案4】:

      对于 Mac

      {
      "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && osascript -e 'tell application \"Terminal\" to activate do script \"clear&&${file_path}/${file_base_name} && read -p \\\"Press Enter to exit.\\\"&&exit\"'"],
      "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
      "working_dir": "${file_path}",
      "selector": "source.c, source.c++",
      
      "variants":
      [
          {
              "name": "Run",
              "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
          }
      ]
      

      }

      对于窗户

      {
      "cmd": ["g++", "${file}", "-o","${file_path}/${file_base_name}"],
      "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:?(.*)$",
      "working_dir": "${file_path}",
      "encoding":"cp936",
      "selector": "source.c",
      "variants":
      [
          {
          "name": "Run",
          "cmd": ["cmd","/C","start","cmd","/c", "${file_path}/${file_base_name}.exe &pause"]
          }
      ]
      }
      

      上面的配置文件让你在终端(Mac)或cmd(windows)中输入数据,输出也显示在终端或cmd中。

      【讨论】:

        【解决方案5】:

        Linux!在终端编译和运行,语言 C
        创建一个新的构建系统并粘贴此代码:

        {
        "cmd": ["xterm-256color -e 'zsh -c \"gcc $file_name -o ${file_base_name} && ./${file_base_name} ;echo;echo Presiona ENTER para salir...; read line\"'"],
        "selector" : "source.c",
        "shell": true
        }
        

        echo $SHELL = 知道你使用哪个 shell (zsh)---------------------------------- ---------------------------echo $TERM = 知道你使用哪个终端 (xterm-256color)-------- ----------------------------------

        :D

        【讨论】:

          猜你喜欢
          • 2013-01-15
          • 1970-01-01
          • 2015-03-22
          • 1970-01-01
          • 2014-01-17
          • 2014-03-13
          • 2012-05-25
          • 2014-08-05
          • 1970-01-01
          相关资源
          最近更新 更多