iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 2
0
自我挑戰組

C-Programming系列 第 2

C-Programming Day02

  • 分享至 

  • xImage
  •  

gcc 的參數使用

Basic Usage

$ gcc helloworld.c -o helloworld.o

helloworld.c 是編譯前的原始檔

helloworld.o 是編譯後的執行醠

-o 是 output 的意思

No Message is a good message.

若無錯誤訊息則會產生一個helloworld.o

執行

./helloworld.c

//Output: Hello World

若是你想了解編譯的過程則可以

gcc -S helloworld.c 

此參數會產生一個helloworld.S

裡面則會記錄變異過程的Log

	.section	__TEXT,__text,regular,pure_instructions
	.macosx_version_min 10, 12
	.globl	_main
	.align	4, 0x90
_main:                                  ## @main
	.cfi_startproc
## BB#0:
	pushq	%rbp
Ltmp0:
	.cfi_def_cfa_offset 16
Ltmp1:
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
Ltmp2:
	.cfi_def_cfa_register %rbp
	subq	$16, %rsp
	leaq	L_.str(%rip), %rdi
	movl	$0, -4(%rbp)
	movb	$0, %al
	callq	_printf
	xorl	%ecx, %ecx
	movl	%eax, -8(%rbp)          ## 4-byte Spill
	movl	%ecx, %eax
	addq	$16, %rsp
	popq	%rbp
	retq
	.cfi_endproc

	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Hello, World!"


.subsections_via_symbols

build

每次寫完程式之後都要開啟Terminal去執行指令

感覺就很麻煩

所以我們安裝一下 Code Runner

再修改setting.json 增加下列的值

{
	"code-runner.executorMap":{
    "javascript": "node",
    "c": "gcc $fullFileName -o $dir/$fileNameWithoutExt && $dir/$fileNameWithoutExt"
  },
}

設定完成之後

day01/example.c

#include <stdio.h>
void main()
{
 printf("Hello, World!");
}
  1. F1 打開指令輸入匡

Image

  1. Run Code

執行結果

Image

這樣就可以基本的build出一個執行檔

並且秀出執行結果

參考資料

Tutorial of gcc and gdb


上一篇
環境設置
下一篇
C-Programming Day03
系列文
C-Programming9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言