C++程序生产过程

编译与解释

计算机的眼中只有0与1,但是就是这么简单的“学识”,具有了高速的计算能力以及超强的记忆力就可以构建现在的信息社会,正所谓“天下武功,唯快不破”。要让计算机为我们是从,需要我们与计算机之间有个折中的交流方式,那就是程序员每天敲得代码。
C++作为一种高级语言,是属于编译语言,除此之外还有解释性语言。编译与解释的不同主要在编译器或是解释器将其转换为机器语言的步骤不同。编译语言源代码经过编译器转换为二进制目标程序;此时程序依然不可运行,因为缺少一些库文件,所以需要经过连接将用到的库文件从系统中一起添加程序中生成可执行文件。因此,在不改动情况下,下一次运行程序是不需要编译的,所以编译语言执行速度很快。但是有一个缺点就是编译好的程序是对当前操作系统敏感的,不能实现跨平台。解释性语言不是将源代码全部翻译为机器语言后在执行,而是一边解释一边执行,因此就像下班马路的不能快马加鞭,速度有点慢,而且每次运行都需要解释。因为其没有解释成机器语言因此对操作系统不敏感,可以实现跨平台。


C++程序生产步骤

  • C++源码 -> 编译器 –> 目标程序 –> 连接 –> 可执行程序
Created with Raphaël 2.2.0 源代码 编译 词、语法正确 连接 可执行文件 yes no

不同操作系统生成的目标程序以及可执行程序是不同的,在Windows上目标程序是.obj文件,Linux系统为.o文件。在编译过程中进行语法和词法的检查。

  • C++编程环境:硬件为一台计算机;软件为编译程序以及编辑器来编写源码。编译程序我选择的是GUN;编辑器选择VIM,为了更好跳转文件给VIM添加NERDTree插件,并使用F2作为页面之间的跳转快捷键,并设置缩进4个空格、显示行号。设置快捷键直接编译以及运行,为了Vim界面美观设置背景样式以及字体。以下为Vim的一些设置。
"设置树状目录切换,页面跳转
map <F2> :NERDTreeToggle<CR>
map <F3> :tabn<CR>
set shiftwidth=4
autocmd vimenter * NERDTree

"设置背景样式以及字体
colorscheme solarized
set guifont=Courier_New:h12:cANSI

"编译
func! CompileCode()
exec "w"
if &filetype == "c"
	exec "!cl %<.c "
elseif &filetype == "cpp"
	exec "!g++ % -o %<"

elseif &filetype == "python"
	exec "!python %<.py"
endif
endfunc

"运行代码 
func! RunCode()
exec "w"
if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell"
exec "! %<.exe"
elseif &filetype == "python"
exec "!python %<.py"
endif
endfunc

" Ctrl + C 保存、编译
map <c-p> :call CompileCode()<CR>
imap <c-p> <ESC>:call CompileCode()<CR>
vmap <c-p> <ESC>:call CompileCode()<CR>

" Ctrl + R 保存、执行
map <c-r> :call RunCode()<CR>
imap <c-r> <ESC>:call RunCode()<CR>
vmap <c-r> <ESC>:call RunCode()<CR>

  • 新建demo1.cpp文件,并编写源代码。
    Vim

  • 使用g++语句进行编译以及连接,可以看出在当前文件夹下生成了.exe文件。运行,得到需要结果。
    C++编译语句

猜你喜欢

转载自blog.csdn.net/qq_29012819/article/details/85542909
今日推荐