二進位制相容的那些事

2021-10-10 02:34:26 字數 377 閱讀 5952

二進位制相容

二進位制相容是針對動態鏈結庫而言的,如果你的源**已經編譯成為可執行檔案了,其中你呼叫了一些動態庫,後來你為這個動態庫進行了更新,並替換掉原來的動態庫了,如果程式在執行時正常執行沒有任何問題,那麼這個庫就是二進位制相容(二進位制邊界正常)。

源**相容

如果換了庫,但是無法執行,需要重新編譯修改一些形參傳遞之類的問題,才能正常執行!

二進位制不相容

如果換了庫,卻怎麼也無法執行,即使重新編譯也無法執行,甚至編譯不過,這就叫二進位制不相容(二進位制混亂),其原因是因為動態庫被經過修改,導致程式無法定位入口點,或形參型別不對,等一系列人為因素導致的問題,這也是程式最為頭疼額乙個問題!

所以一般編寫介面的程式設計師,必須確保新老庫與之前的二進位制介面一模一樣!

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制相容問題

二進位制相容問題,主要是針對動態鏈結庫而言的。在windows上就是dll,在linux上就是so。如果主程式exe 當然也可以是客戶庫 不變,公升級了依賴庫so1到so2,而不需要重新編譯,那麼就是說so2是相容so1庫的。二進位制相容涉及到編譯問題,所以和硬體平台,軟體平台以及編譯器等都是密切相...

c 二進位制相容本質

總的一條就是讓client只依賴 名字 而不依賴任何 實現 實現 具體的就是2類 1 函式體,code 2 任何記憶體塊大小,layout細節 為什麼會有二進位制相容問題,就是因為一般的c 標頭檔案並不是單純的介面宣告,其中也還包括了 實現細節 因為成員變數就是一種記憶體layout,就屬於實現細節...