国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++中的編譯與鏈接

C++中的編譯與鏈接

2022-03-10 14:31一個熱愛學習的深度渣渣 C/C++

這篇文章主要介紹了C++中的編譯與鏈接,編譯型語言SHI c++最大的優點,相比于Python這種解釋型語言,C++在編譯階段就進行了許多處理,在執行階段便具有高效性,下面我們就來詳細講解該內容吧

前言:

C++有個最大的特點,那便是編譯型語言,相比于Python這種解釋型語言,C++在編譯階段就進行了許多處理,在執行階段便具有高效性,本篇主要講解C++中的編譯與鏈接

 

一、編譯與鏈接模型

1、一開始的C++是一個簡單的加工模型,如下圖所示:

C++中的編譯與鏈接

這樣會存在一些問題:

  • 無法處理大型程序
  • 加工耗時較長
  • 即使少量修改,也需要全部重新加工

2、為了解決以上問題,引入了分塊處理的方式:

C++中的編譯與鏈接

編譯鏈接模型的好處:

  • 編譯耗資源但一次處理輸入較少
  • 鏈接輸入較多但處理速度快
  • 便于程序修改(只需修改一部分)

在引入分塊處理后,出現了一些常見概念:

①定義與聲明:一個變量在只需在一個文件中定義,其他文件可通過聲明該變量;

②頭文件與源文件:由于聲明的變量、函數過多,可將聲明放在頭文件中,在源文件中引用頭文件加載這些聲明;

③翻譯單元:源文件 + 相關頭文件(直接/間接)- 應忽略的預處理語句(宏定義不符合條件的);

 

二、編譯與鏈接流程

下面通過一個實際例子,講解程序如何從cpp一步步到可執行文件的;

下圖為一個整體流程圖:

C++中的編譯與鏈接

1、預處理階段:將cpp或c的源程序進行處理(頭文件展開等),轉換成以i結尾的翻譯單元文件

g++ -E ./main.cpp -o ./main.i

2、編譯階段:生成編譯后以s為后綴的匯編代碼文件

g++ main.i -S -o main.s

3、匯編階段:將匯編代碼進行匯編生成以o為后綴目標文件

4、鏈接階段:合并多個目標文件,關聯聲明與定義,生成可執行程序

以上為系統內部具體的實現操作,我們在實際運行中可以通過一行命令實現編譯鏈接:

g++ ./main.cpp -o ./main

注意點:在用IDE編譯程序時,往往會有兩種模式:Debug和Release,Debug在開發中使用,優化較少,Release在最終程序編譯使用,優化較多;

 

三、總結

  • C++的編譯與鏈接過程是復雜的,預處理、編譯與鏈接都可能出錯,要細心排除;
  • 編譯可能產生警告、錯誤,都要重視;
  • 我個人的感受,會遇到一些很奇怪的坑,不管從環境還是依賴庫,這就需要有耐心不斷嘗試,并且總結經驗;

到此這篇關于C++中的編譯與鏈接的文章就介紹到這了,更多相關C++ 編譯與鏈接內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_40620310/article/details/121196433

延伸 · 閱讀

精彩推薦
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
主站蜘蛛池模板: 久久se精品一区精品二区 | 国产精品视频免费 | 亚洲中午字幕 | 日韩视频在线观看一区 | 欧美精产国品一二三区 | 日韩精品一区二区三区四区 | 天堂av在线免费观看 | 久久亚洲国产 | 欧美精品久久一区 | 亚洲一区精品在线 | 精品久久久久久久久久久久久久 | 亚洲免费视频一区二区 | 成人在线手机版视频 | 国产高清在线精品一区二区三区 | 日韩国产在线观看 | 亚洲天堂av影院 | 二区在线观看 | 免费观看毛片 | 日韩中文字幕 | 国产99久久久精品视频 | 国产欧美视频一区二区三区 | 极品女神高潮呻吟av久久 | 成人国产精品一级毛片视频 | 国产午夜精品一区二区三区嫩草 | 亚洲人人| 国产精品久久久 | 免费色视频| 爱色影wwwcom| 99久久婷婷国产综合精品电影 | 国产精品久久久久久久久久免费动 | 一级毛片免费观看久 | 欧美久久久久久久 | 九九综合九九 | 视频在线一区二区 | 国产片在线观看免费观看 | 久色网| 亚洲精品99 | 日韩福利在线 | 久久亚洲天堂 | 国产精品www | 一区二区三区影视 |