2016-04-10 26 views
0

Sublime Text 2'da C dosyalarını derlerken kendiliğinden tanımlanan bir oluşturma komutu oluşturdum ve Tamam çalışıyor.Sublime Text ile montaj çıktısı nasıl üretilir?

{ 
    "cmd": "gcc $file_base_name.c -g -O3 -m32 -std=c99 -fverbose-asm -fno-inline -save-temps -Wall -Werror -o $file_base_name.exe" 
} 

Ve sonra, bir daha okunabilir montaj dosyası oluşturmak için aşağıdaki output_asm.sublime-build komutu kullanın:

output_c.sublime-build dosya aşağıdaki gibidir (Ancak ikinci komutu

{ 
    "cmd": "objdump -d -M intel $file_base_name.o > $file_base_name.asm" 
} 

Yani, ikinci output_asm.sublime-build dosya) $file_base_name.asm dosya oluşturmak yerine çıktıyı ekranda (Sublime Text ekranındaki durum satırının hemen üstünde) döker. Ben bir metin dosyasına yazılı montaj çıktı alabilmeleri

  1. nasıl, objdump komutu biçimlendirebilirsiniz:

    konuyla bağlantılı, iki soru var?
  2. Bu iki derleme komutunu bir output_combined.sublime-build dosyasında nasıl birleştirebilirim, böylece birleştirilmiş komut dosyası .exe ve .asm dosyasını aynı anda oluşturur?

(Sistemi: Windows 10)

cevap

2

size cevaplamak için sorular: Eğer > gibi kabuk komutlarını kullanırsanız

  1. Eğer argüman olarak (veya shell_cmd yerine cmd ait ST3 kullanımda) "shell": true eklemelisiniz
  2. Kabukta cmd kullanırsanız, o zaman iki komutu && ile birleştirebilirsiniz (ilk komut başarılı olursa ikinci komutu yürütün)

Ayrıca ben bir kapsam selector, working_dir (eğer file_base_name ile çalışmak özellikle) ve bir file_regex (hatalara tıklayarak geçin) eklemek için tavsiye ederim.

{ 
    "cmd": "gcc $file_name -g -O3 -m32 -std=c99 -fverbose-asm -fno-inline -save-temps -Wall -Werror -o $file_base_name.exe && objdump -d -M intel $file_base_name.o > $file_base_name.asm", 
    "shell": true, 
    "working_dir": "$file_path", 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
    "selector": "source.c" 
} 
+0

adil Sesler ama bir deneyin verdikten sonra, aşağıdaki hatayı tükürür: Bu şu yapı sistemi ile sonuçlanır ** 'TypeError: __init __() beklenmedik bir anahtar kelime argüman 'shell_cmd'' ** (bağlantı var : http://i.imgur.com/0qENVO9.png) – ssd