2012-04-08 65 views
13

Tôi muốn biên dịch một chương trình C đơn giản với GCC. Tôi cần phải đưa gì vào tệp xây dựng tuyệt vời để làm như vậy?Làm thế nào để biên dịch và chạy một chương trình C đơn giản với Sublime Text 2?

+0

Đã tìm ra cách để làm điều này, nhưng như tôi không thể tìm thấy một câu trả lời thích hợp cho điều này ở nơi khác (không phải cho Mac anyways), tôi nghĩ rằng tôi muốn đăng nó ở đây. – username

+0

cũng xem http://stackoverflow.com/questions/16490889/build-and-run-with-arguments-in-sublime-text-2 để biết cách thực hiện điều này với các đối số động (xem plugin InputArgs) –

Trả lời

14

Mac OS X:

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

Windows:

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

@Michael Anthony, cảm ơn cho người đứng đầu lại: Windows và thêm ".exe" – username

+0

Đó chỉ là những gì tôi cần, cảm ơn. – lokson

+0

Làm cách nào để bạn nhập các giá trị vào thời gian chạy? Tôi có nghĩa là nếu chúng ta sử dụng 'scanf()', làm thế nào để nhập một giá trị cho lệnh đó trong suốt thời gian chạy từ văn bản tuyệt vời? – Greenhorn

2

Câu trả lời được chấp nhận không làm việc cho tôi.

Những gì tôi đã làm là như sau:

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

Thiết shell để true nghĩa nó đọc cmd như một dòng, vì vậy tôi gọi làm để biên dịch và sau đó chạy kịch bản. Tùy chọn khác là để có shell được đặt thành false nhưng bạn không thể chạy nhiều cmd. Vì vậy, cách duy nhất tôi nhận được nó để làm việc đã có nó làm cho các tập tin với CMD + B và sau đó chạy nó với CMD + Shift + B:

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

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

Trong cửa sổ, biên dịch và chạy, với 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" 
} 
0

Đối với 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}'"] 
    } 
] 

}

Đối với cửa sổ

{ 
"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"] 
    } 
] 
} 

Các tập tin cấu hình ở trên làm cho bạn dữ liệu đầu vào trong thiết bị đầu cuối (Mac) hoặc cmd (cửa sổ), sản lượng cũng đã được thể hiện trong các thiết bị đầu cuối hoặc cmd.

0

LINUX! Biên dịch và chạy trong Terminal, NGÔN NGỮ C
Tạo một hệ thống xây dựng mới và dán mã này:

{ 
"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 = To know which shell you use (zsh)-------------------------------------------------------------echo $TERM = To know which terminal you use (xterm-256color)-------------------------------------------

: D

Các vấn đề liên quan