日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

關(guān)于C++的.cpp文件運(yùn)行全過(guò)程_C 語(yǔ)言

作者:雨落水漲next ? 更新時(shí)間: 2023-06-05 編程語(yǔ)言

.cpp文件運(yùn)行全過(guò)程

今天來(lái)寫一寫.cpp文件是怎么一步一步變成.exe文件的,以便更好的理解C++內(nèi)核

第一步

先用編輯器編輯好源代碼文件,也就是.cpp文件

int main() {}

然后是對(duì)該文件進(jìn)行預(yù)處理,也就是常用的三個(gè)預(yù)處理命令(此三者嚴(yán)格意義上不算是C++的語(yǔ)句):

文件包含:將該文件內(nèi)容合并到源代碼中

#include <iostream>

條件編譯:有時(shí)候一個(gè)頭文件可以引入另外一個(gè)頭文件,條件編譯防止頭文件的重復(fù)包含和編譯

#ifndef __PERSON_H__?? ??? ?// 如果這個(gè)頭文件沒(méi)有被包含
#define __PERSON_H__?? ??? ?// 就包含這個(gè)頭文件并且定義這個(gè)變量
#endif

宏定義:宏不占內(nèi)存,編譯器在編譯之前對(duì)源代碼做一些文本替換的處理

#define MAXSIZE 100

第二步

對(duì)該文件中的內(nèi)容進(jìn)行詞法、語(yǔ)法分析,然后轉(zhuǎn)化成二進(jìn)制文件(.obj&.o文件后綴)

之后把二進(jìn)制文件(.obj&.o文件后綴)和靜態(tài)鏈接庫(kù)(.lib&.a文件后綴)進(jìn)行合成為.exe文件

靜態(tài)鏈接庫(kù):可以看做是自己寫的.h文件生成的.lib(Windows)或者.a(Linux&Unix)文件

第三步

運(yùn)行.exe文件,并在過(guò)程中加載動(dòng)態(tài)鏈接庫(kù)(.dll文件后綴)

動(dòng)態(tài)鏈接庫(kù):通過(guò)外部引入的.dll配置文件,如數(shù)據(jù)庫(kù),如opencv等等

附:

靜態(tài)鏈接庫(kù)比動(dòng)態(tài)鏈接庫(kù)更耗內(nèi)存,靜態(tài)鏈接庫(kù)是由多個(gè)文件組成的,運(yùn)行過(guò)程中,分別在內(nèi)存中開(kāi)辟不同的內(nèi)存空間;而動(dòng)態(tài)內(nèi)存都只在一塊內(nèi)存中進(jìn)行存儲(chǔ)

在一個(gè)工程中如何單獨(dú)運(yùn)行一個(gè)cpp文件

在我們使用visual studio 2019的時(shí)候,一個(gè)工程下面會(huì)包含很多源文件(.cpp),如何單獨(dú)運(yùn)行其中一個(gè),我這里有兩種方式:

第一種是禁用其它的.cpp

  • 第一步:在.cpp文件右擊選擇屬性
  • 第二步:在從生成中排除選擇是

  • 第三步:點(diǎn)擊確認(rèn)

將要除運(yùn)行外的其它.cpp文件禁用。

第二種是注釋

將除運(yùn)行外的其它.cpp文件中的main()函數(shù)注釋掉,這樣就可以只運(yùn)行一個(gè).cpp文件。

這兩種方式僅針對(duì)于剛剛開(kāi)始學(xué)習(xí)C++的人。

總結(jié)

原文鏈接:https://lhcpp.blog.csdn.net/article/details/113853541

  • 上一篇:沒(méi)有了
  • 下一篇:沒(méi)有了
欄目分類
最近更新