網站首頁 編程語言 正文
.cpp文件運行全過程
今天來寫一寫.cpp文件是怎么一步一步變成.exe文件的,以便更好的理解C++內核
第一步
先用編輯器編輯好源代碼文件,也就是.cpp文件
int main() {}
然后是對該文件進行預處理,也就是常用的三個預處理命令(此三者嚴格意義上不算是C++的語句):
文件包含:將該文件內容合并到源代碼中
#include <iostream>
條件編譯:有時候一個頭文件可以引入另外一個頭文件,條件編譯防止頭文件的重復包含和編譯
#ifndef __PERSON_H__?? ??? ?// 如果這個頭文件沒有被包含
#define __PERSON_H__?? ??? ?// 就包含這個頭文件并且定義這個變量
#endif
宏定義:宏不占內存,編譯器在編譯之前對源代碼做一些文本替換的處理
#define MAXSIZE 100
第二步
對該文件中的內容進行詞法、語法分析,然后轉化成二進制文件(.obj&.o文件后綴)
之后把二進制文件(.obj&.o文件后綴)和靜態鏈接庫(.lib&.a文件后綴)進行合成為.exe文件
靜態鏈接庫:可以看做是自己寫的.h文件生成的.lib(Windows)或者.a(Linux&Unix)文件
第三步
運行.exe文件,并在過程中加載動態鏈接庫(.dll文件后綴)
動態鏈接庫:通過外部引入的.dll配置文件,如數據庫,如opencv等等
附:
靜態鏈接庫比動態鏈接庫更耗內存,靜態鏈接庫是由多個文件組成的,運行過程中,分別在內存中開辟不同的內存空間;而動態內存都只在一塊內存中進行存儲
在一個工程中如何單獨運行一個cpp文件
在我們使用visual studio 2019的時候,一個工程下面會包含很多源文件(.cpp),如何單獨運行其中一個,我這里有兩種方式:
第一種是禁用其它的.cpp
- 第一步:在.cpp文件右擊選擇屬性
- 第二步:在從生成中排除選擇是
- 第三步:點擊確認
將要除運行外的其它.cpp文件禁用。
第二種是注釋
將除運行外的其它.cpp文件中的main()函數注釋掉,這樣就可以只運行一個.cpp文件。
這兩種方式僅針對于剛剛開始學習C++的人。
總結
原文鏈接:https://lhcpp.blog.csdn.net/article/details/113853541
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-06-17 Go語言HttpRouter路由使用方法詳解_Golang
- 2022-04-09 Python調用win10toast框架實現定時調起系統通知_python
- 2022-07-02 使用yum命令時報錯Cannot retrieve metalink for repository
- 2022-05-26 Android?Flutter實現3D動畫效果示例詳解_Android
- 2022-04-17 react 制作一個 從頂部劃出的浮層。demo
- 2022-08-05 基于redis+lua進行限流
- 2025-02-10 超詳細win安裝深度學習環境2025年最新版(cuda11.8+torch2.2)
- 2022-10-25 python繪圖之坐標軸的超詳細講解_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支