當前位置:
首頁 > 最新 > C加加語言編譯依賴兩大巨坑?

C加加語言編譯依賴兩大巨坑?

後台C++服務多依賴,編譯鏈接會出現幾種常見問題,導致coredump,總結了一些,希望可以幫大家從容應對。

想要一起學習C語言C++的可以加裙四九二八八一四零四,裙內有各種資料滿足大家,更新最新行業行情

1.背景

本文不是論述簡單的普世的C++編譯問題,而是在其它環境下容易碰到的問題。其他讀者雖然也能參考,但是因為上下文的關係,可能會有困惑,忘諒解。

有的瀏覽器後台以C++開發為主,常見的編譯問題不足為懼,跟著編譯器的提示一步步fix便是。但是有一些編譯問題,是後台大規模團隊協作時特有的,碰上後往往焦頭爛額,希望這篇文章能提供些幫助。

想要一起學習C語言C++的可以加裙四九二八八一四零四,裙內有各種資料滿足大家,更新最新行業行情

2.問題

大規模協作,一個明顯的現象是互相依賴,由此孕育了諸多問題。筆者將常見的問題模式總結出來,命名如下:三角依賴,循環依賴。

3.C++編譯基礎

便於後面闡述,我們先複習下編譯的基礎知識。

C++是一門編譯型的強類型語言。編譯型沒有問題,有人可能會對強類型提出質疑,C++確實有些地方不是類型安全的,特別是兼容C的地方,但是我認為稱其為強類型無妨,不必掉書袋子。

GIF/14K

想要一起學習C語言C++的可以加裙四九二八八一四零四,裙內有各種資料滿足大家,更新最新行業行情

C++源代碼要經過預處理、編譯、鏈接這三步後方能生成可執行程序。

預處理不包含任何語義,純粹是拷貝。甚至不用include xxx.h文件,可以include任意文本文件

每一個預處理後的 xxx.cpp文件都是單獨編譯的,理解這點非常重要。

靜態鏈接包含符號查找和地址重定位兩步

4.三角依賴

想要一起學習C語言C++的可以加裙四九二八八一四零四,裙內有各種資料滿足大家,更新最新行業行情

三角依賴是最常見的一個依賴問題,會導致線上出core,咱們第一個解決它。

4.1 產生步驟

三角依賴首先滿足以下要求

有一個公共jce,叫 C,一般放在公共庫目錄

A的jce某個方法的請求或應答體依賴了C的某結構體

B調用A的那個方法,並且B依賴了C的那個結構體

上面表述為了嚴謹性,讀起來比較繞。不嚴謹地講,就是

有公共庫C

A依賴C

B依賴A,且B依賴C

滿足以上三個條件後,故事即將發生。當B的開發者因為需求要升級C,他發布C後,接著就興沖沖地發布B,結果剛發布成功,duang的一下,B就掛了。

如果幸運的話,可以從core看出是調用A的地方出問題了。有的時候,錯誤會指向別處,令人摸不著頭腦。

想要一起學習C語言C++的可以加裙四九二八八一四零四,裙內有各種資料滿足大家,更新最新行業行情

喜歡這篇文章記得點一下關注哦,每天穩定更新最新資訊


點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 萌萌的程序員 的精彩文章:

學C加加語言你該這樣擁有真正的編程能力
C加加程序員基本知識
C語言和C加加語言的本質區別在哪?
零基礎初學者該如何學習C加加語言
逐步深入學習C加加這門語言,不需要速成

TAG:萌萌的程序員 |