sublime text 2 build system for C programming language

userzerox picture userzerox · Dec 2, 2012 · Viewed 28.5k times · Source

I'm learning C language. I'm referring book by Dennis Ritchie & Kernighan. And there fore Just ANSI complaint programs. I've installed ANSI compiler. I just installed Sublime text 2 editor. Could someone give me a build system that would do the following.

1) Compile my source file

2) Display error (in well formatted manner) within sublime on unsuccessful compilation.

3) On successful compilation, Generate binary file with name same as the Source file name within my working directory.

4) Accept Any user input within sublime to calculate Output. (Since i'm a beginner i mostly write programs that would ask the user to input. ex: Program to calculate number of characters in user input name.)

5) Separate selection for Compile & run.

Thanks in Advance.

Answer

c633 picture c633 · Dec 2, 2012

From menu, choose Build -> New build system ... and copy-paste this:

Windows

Compile Only:

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

Compile & Run:

{
    "windows":
    {
        "cmd": ["cc","-std=c99" ,"$file_name","-o", "${file_base_name}.exe", "-lm", "-Wall", "&","start", "${file_base_name}.exe"]
    },
    "selector" : "source.c",
    "shell": true,
    "working_dir" : "$file_path",
}

Linux

Compile Only:

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

Compile & Run:

{
    "linux":
    {
        "cmd": ["cc","-std=c99" ,"$file_name","-o", "${file_base_name}", "-lm", "-Wall", ";", "./${file_base_name}"]
    },
    "selector" : "source.c",
    "shell": true,
    "working_dir" : "$file_path",
}

and save this with extension *.sublime-build

ST just is a editor, so you cannot use it as a input stream, you have to use a shell like bash, zsh, ... to do it.