1. 程式人生 > >《C++ Primer第五版》讀書筆記(5)--解決執行時錯誤version `GLIBCXX_3.4.15' not found

《C++ Primer第五版》讀書筆記(5)--解決執行時錯誤version `GLIBCXX_3.4.15' not found

今天在編譯完一個小程式,執行時報錯:

[[email protected] programmer]$ prog1

prog1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by prog1)

[[email protected] programmer]$ strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

最高到了3.4.13,沒有3.4.15版.

我是自己從原始碼編譯的gcc 4.8.2,應該是sudo make install沒有抓到這個包.

在網上搜了搜,參考這篇文章:http://stackoverflow.com/questions/5216399/usr-lib-libstdc-so-6-version-glibcxx-3-4-15-not-found,把問題解決了:

1.在當時make的目錄下找到如下檔案:

gcc-build-4.8.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18,

strings libstdc++.so.6.0.18| strings /usr/lib64/libstdc++.so.6|grep GLIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

包括了.15,應該可以!

把該檔案拷貝到了/usr/lib64下.

然後將libstdc++.so.6指向libstdc++.so.6.0.18:

[[email protected] lib64]# rm -r libstdc++.so.6
rm: remove symbolic link `libstdc++.so.6'? y
[[email protected] lib64]# ln -s libstdc++.so.6.0.18 libstdc++.so.6

再次執行程式就好使了!

相關推薦

C++ Primer讀書筆記(5)--解決執行錯誤version `GLIBCXX_3.4.15' not found

今天在編譯完一個小程式,執行時報錯: [[email protected] programmer]$ prog1 prog1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (requi

C++ Primer 讀書筆記 第一章 開始

下面是C++ Primer第一章的讀書筆記 ———————————————————————— 0001.作業系統如何執行C++程式 作業系統通過呼叫main來執行C++程式 0002.main 作業系統執行一個C++程式時所呼叫的函式 每個程式必須有且只有一個命名為mai

c++ primer----學習筆記(十九)Ⅱ

部分習題解答: 19.1、19.2: #include <iostream> #include <cstdlib> using namespace std; void *operator new(size_t size) { cout << "new(

c++ primer----學習筆記(十九)Ⅰ

文章目錄 ==特殊工具與技術== 1.控制記憶體分配 1.1 過載new和delete 1.2 定位new表示式 2. 執行時型別識別 2.1 dynamic_cast運算子 2.2 typeid運算子

c++primer----學習筆記(十八)Ⅱ

部分習題解答: 18.1: (a)range_error (b)exception 如果寫成throw p,則丟擲指標,是錯誤的18.2: 發生異常,所在塊之前的臨時變數都會被銷燬,v呼叫vector類的解構函式進行銷燬,並釋放相關記憶體;p指標會被銷燬,但p指向的記憶體是動態分配的,所以該記憶

c++ primer----學習筆記(十八)Ⅰ

用於大型程式的工具:異常處理、名稱空間和多重繼承 特殊要求: 在獨立開發的子系統之間協同處理錯誤的能力 使用各種庫(可能包含獨立開發的庫)進行協同開發的能力 對比較複雜的應用概念建模的能力 1.異常處理: 異常處理機制允許程式中獨立開發的部分能夠在執行

c++ primer----學習筆記(十三)Ⅰ

知識點: 拷貝控制操作:拷貝、移動、賦值和銷燬 在定義一個類時,我們可以顯式或隱式的定義在此型別的物件拷貝、賦值、移動、銷燬是做什麼,主要通過五種特殊的成員函式來完成這些操作:拷貝建構函式、拷貝複製運算子、移動建構函式、移動複製運算子和解構函式 1.拷貝建構函式: 定

c++ primer----學習筆記(十)Ⅰ

oop的核心思想是多型性。我們把具有繼承關係的多個型別稱為多型型別; 引用或指標的靜態型別與動態型別不同這一事實正是c++語言支援多型性的根本存在 當且僅當對通過指標或引用呼叫虛擬函式時,才會在執行時解析該呼叫,也只有在這種情況下物件的動態型別才有可能與靜態型別不同 一個派生類的函式如果覆蓋了某個繼承而來

c++ primer----學習筆記(十六)Ⅱ

部分習題解答: 16.1: 當呼叫template時,編譯器使用實參的型別來確定繫結到模板引數T的型別,之後編譯器利用推斷出的模板引數來例項化一個特定版本的函式 16.2: #ifndef COMPARE_H #define COMPARE_H template &

c++ primer 學習筆記-第二章 變數和基本型別

本文為轉載,出處:https://blog.csdn.net/libin1105/article/details/48157115                              https://blog.csdn.net/sunhero2010/article/d

c++ primer----學習筆記

1.空語句:最簡單的語句,只包含一個單獨的分號 複合語句:指用花括號括起來的語句和宣告的序列,複合語句也被稱為塊 2.if語句: //語法形式: if (condition) statement //if、else語句 if (condition) s

C++Primer 12.1.5節練習

練習12.16:如果你試圖拷貝或賦值unique_ptr,編譯器並不總是能給出易於理解的錯誤資訊。編寫包含這種錯誤的程式,觀察編譯器如何診斷這種錯誤。 答:錯誤程式碼如下 #include &l

c++ primer 學習筆記-七章 類

本文為轉載,出處:https://blog.csdn.net/libin1105/article/details/48664019                                https://blog.csdn.net/sunhero2010/article

c++ primer 學習筆記-三章 字串、向量和陣列

本文為轉載,出處:https://blog.csdn.net/libin1105/article/details/48210261                               https://blog.csdn.net/fnoi2014xtx/article/

C++Primer筆記】——九章——順序容器

1. 順序容器概述 表一中的順序容器,提供了對元素快速的順序訪問。但是其他操作的開銷則不同: 新增或刪除元素的開銷進行非順序訪問的開銷 表一:順序容器型別  vector    可變長度陣列。支援快速隨機訪問。在非尾部插入或刪除元素速度很慢  deque   雙端佇列。

Primer C++ 讀書筆記(一)

Primer C++第五版 讀書筆記(一) (如有侵權請通知本人,將第一時間刪文) 1.1-2.2 章節 關於C++變數初始化: 初始化不是賦值,初始化的含義是建立變數時賦予其一個初始值,而賦值的含義是把物件的當前值擦除,以一個新值來替代. 定義一個名為a的int變數並初始化為0,有以下4種方法

C++Primer PLus 讀書筆記

處理第一個問題: 1)某書店以檔案形式儲存其每一筆交易。沒一筆交易記錄某本書的銷售情況,含有ISBM、銷售冊數和銷售單 價。每一筆交易形如:0-201-70352-X 4 24.99 -----------------------------------------

C++ Primer筆記——執行型別識別

執行時型別識別(run-time type identification,RTTI)的功能由兩個運算子實現:  typeid運算子,用於返回表示式的型別。  dynamic_cast運算子,用於將基類的指標或引用安全的轉換成派生類的指標或引用。  當這兩個運算子

C++ Primer筆記--列舉型別

列舉型別可以將一組整型常量組織在一起;和類一樣,每個列舉型別定義了一種新的型別;列舉屬於字面常量型別。   C++包含兩種列舉:限定作用域(C++11新標準引入)的和不限定作用域的:   定義限定作用域的列舉型別的一般形式是:首先是關鍵字enum class(或者等價的使用struct)

C++ Primer筆記——過載new和delete

要想掌握過載new和delete的方法,首先要對new和delete表示式的工作機理有更多瞭解,當執行一條new/delete表示式時: string* sp = new string("hello"); string* arr = new string[10]; delete sp