Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sublime text 2 build system for C programming language [closed]

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.

like image 377
userzerox Avatar asked Dec 02 '12 14:12

userzerox


1 Answers

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.

like image 80
c633 Avatar answered Nov 16 '22 02:11

c633