gdb和gcc升級:解決編譯和除錯時出現gdb no symbol in current context
阿新 • • 發佈:2019-01-29
1 gcc 4.8安裝
步驟1:從gnu網站下載程式碼(gcc-4.8.0.tar.gz)。 步驟2:解壓程式碼 $> tar -xzvf gcc-4.8.0.tar $> cd gcc-4.8.0 步驟3:編譯程式碼 $> ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --build=x86_64-redhat-linux $> make 步驟4:安裝 linux下安裝軟體需要以root許可權。 $# make install 步驟5:檢查 $> gcc -v 入命令輸出結果含義“gcc version 4.8.0 (GCC)”,則表示gcc新版本安裝成功。 重要: 升級後需要拷貝兩個重要的檔案到對應目錄 1 libstdc++.so,用新編譯的替代舊有系統裡面的 2 libgcc_s.so,使用/usr/local/lib64下的檔案,替換掉/usr/local/lib/下的老檔案。(對ns3編譯,elf-cache的拷貝這是必須要的)
2 gdb 7.6安裝
安裝完gcc後,些一個簡單的用例。再用gdb進行除錯時,發現出錯。錯誤資訊如,“Missing separate debuginfos use:debuginfo-install...”
版本不匹配還可能出現gdb no symbol in current context。
出現錯誤的原因是,gdb版本和gcc版本不匹配。
步驟1:從gnu網站下載程式碼(gdb-7.6.tar.gz)。
步驟2:解壓程式碼 $> tar -xzvf gdb-7.6.tar.gz $> cd gdb-7.6
步驟3:編譯程式碼
$> ./configure
$> make
編譯過程中,有庫依賴的問題。本人編譯過程中,缺少庫ncurses。安裝庫 ncurses-5.9.tar.gz,安裝過程不詳細描述,過程和其他軟體包類似。
步驟4:安裝 linux下安裝軟體需要以root許可權。 $# make install
步驟5:檢查 $> gdb -v 入命令輸出結果含義“GNU gdb (GDB) 7.6”,則表示gdb新版本安裝成功。
安裝成功後,就可以編譯和除錯用C++ 0x11標準寫的程式碼了。
編譯程式碼時,需要帶引數std=c++11:
如:g++ test.cc std=c++11。
參考
http://blog.csdn.net/kedacom_com/article/details/8917800