gcc 不同版本對程式的影響

2021-08-14 22:02:06 字數 369 閱讀 1006

1. 因為在linux 下我們寫的c++程式,預設是會鏈結 libstdc++.so 這個動態庫檔案,如果牽扯到版本的更新,直接用新的動態庫檔案更新老的話,老的程式都無法執行。因為找不到老的動態庫檔案。

2. 當使用高版本的 gcc 鏈結程式的時候,老的原始檔需要重新編譯,因為老的 .o 檔案中 可能對 stl中模板類或者函式名的修飾跟新版本的編譯器是不一樣的。

eg:

c++ 11前 gcc的版本可能是這樣的

std:

:basic_string

c++ 11後 gcc的版本可能是這樣的

std:

:cxx11

::basic_string

linux更改不同版本的gcc

1 檢視安裝的gcc版本 ls usr bin gcc l 或者ls usr bin grep gcc 2 檢視系統版本 gcc v 4 gcc更換選項 刪除所有gcc鏈結 sudo update alternatives remove all gcc 設定每個版本權重 sudo update al...

大小端裝置對程式的影響

裝置大小端模式的概念 大端模式,是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 這和我們的閱讀習慣一致。小端模式,是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存...

Ubuntu下不同使用者gcc版本的切換方法

在ubuntu上安裝matconvnet,配置環境要求gcc 4.9.而系統的gcc是5.4的,所以要修改gcc版本,但是伺服器上有多個使用者,不能改全域性,會對別人造成影響。所以只能改自己的環境變數了,以下是修改過程。參照了這篇 linux下不同使用者使用不同版本gcc的方法 安裝你需要的gcc版...