1. 程式人生 > >ubuntu下CUDA編譯的GCC降級安裝

ubuntu下CUDA編譯的GCC降級安裝

1、原始碼安裝gcc

預安裝重要依賴

如果直接安裝GCC,可能會遇到以下問題:

Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

MPC :

GMP :

下載gmp-5.0.1.tar.bz2 : ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2
解壓 :
$ bunzip2 gmp-5.0.1.tar.bz2
$ tar xf gmp-5.0.1.tar

MPFR :

下載mpfr-3.1.0.tar.gz : http://ftp.gnu.org/gnu/mpfr/


解壓 :$ tar xf mpfr-3.1.0.tar.gz

開始安裝 :

先開始安裝GMP。解壓GMP的壓縮包後,得到原始碼目錄gmp-5.0.1。在該目錄的同級目錄下建立一個臨時的編譯目錄,這裡命名為temp。然後開始配置安裝選項,進入temp目錄,輸入以下命令進行配置:

$ sudo ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
$ sudo make
$ sudo make install

mpfr和mpc的安裝方法與gmp類似。不過要注意配置的時候要把gmp與mpfr的依賴關係選項加進去,具體配置命令如下:

$ sudo ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
$...(同上)
$sudo ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
$...(同上)

  安裝好這三個庫之後,就可以正式開始安裝gcc了。 但有可能出現“error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory”之類的錯誤。

以及提示錯誤:
”checking for suffix of object files… configure: error: in `…./x86_64-unknown-linux-gnu/libgcc’:
configure: error: cannot compute suffix of object files: cannot compile“

  需要加入剛剛編譯的3個lib到庫路徑中。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib 
為了以後使用的時候不再設定,我們可以修改/etc/bashprofile或者/etc/profile。這裡修改的是全域性變數,對所有使用者有效,修改~/.bashprofile 和~/.profile可以修改使用者的全域性變數。

下載安裝GCC

  • 下載gcc-4.6.4 : https://gcc.gnu.org/mirrors.html,連結中是各個gcc官方映象入口,選一個認為速度比較好的映象連結進入,各個版本的gcc檔案儲存在releases目錄下。以gcc-4.6.4.tar.bz2為例子下載。
  • 解壓:
    $ bunzip2 gcc-4.6.4.tar.bz2
    $ tar xf gcc-4.6.4.tar

與gcc-4.6.4建立一個build目錄,命名為temp,進入temp目錄下,開始典型的configure,make,install三步曲安裝,build命令需要加入gmp、mpfr以及mpc的安裝路徑,並將gcc安裝字尾設定為“46”。

$ sudo ../gcc-4.6.4/configure --prefix=/usr/local/gcc-4.6  --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9 --program-suffix=46 

接著執行make
$ sudo make
可能會make失敗,檢視config.log檔案

如果發現問題為 :
conftest.c:10: fatal error: ppl_c.h: No such file or directory

需要安裝ppl還有cloog的庫。這裡有介紹-> 傳送門

$ sudo apt-get install libppl-dev libppl-c4 libppl13
$ sudo apt-get install libcloog-ppl-dev
(注意:可能隨著版本的升級而有變化)
$ sudo make clean (清除下之前沒成功編譯的檔案)
$ sudo make (繼續make)
...
...
$ make check (可選)
...
$ make 
...

以上make需要花費漫長的時間~將近一個小時,請耐心等待

建立連結

安裝完成可以在/usr/bin目錄下進行以下操作(gcc的執行目錄):

$ ls -l gcc*
lrwxrwxrwx 1 root root      7 Jun  7 10:59 gcc -> gcc-5
-rwxr-xr-x 1 root root 578808 Oct  3  2015 gcc-4.6.4
-rwxr-xr-x 1 root root 886968 Oct 17  2015 gcc-5

#其中gcc連結到gcc-5,需要將它更改到gcc-4.6.4:
$ sudo mv gcc gcc.bak
$ sudo ln -s gcc-4.6.4 gcc

檢視gcc版本號:
$ gcc --version
如果顯示

gcc (Ubuntu/Linaro 4.6.4-3ubuntu3) 4.6.4
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

說明gcc安裝成功

我們在用同樣的方法重新連結下g++,就能使用g++4.6.4了!

$ which g++  # 查詢執行目錄 #
/usr/bin/g++

$ ls -l /usr/bin/g++*
lrwxrwxrwx 1 root root      7 Jun  7 11:01 g++ -> g++-5*
-rwxr-xr-x 1 root root 578808 Oct  3  2015 g++-4.6.4*
-rwxr-xr-x 1 root root 886968 Oct 17  2015 g++-5*

$ sudo mv /usr/bin/g++ /usr/bin/g++.bak
$ sudo ln -s /usr/bin/g++-4.6.4 /usr/bin/g++

$ g++ -version
g++ (Ubuntu/Linaro 4.6.4-3ubuntu3) 4.6.4
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

說明g++安裝成功

2、快速安裝gcc的方法

$ sudo apt-get install gcc-4.7
$ sudo apt-get install g++-4.7

如果想安裝更低版本的gcc,g++。新版的apt源中可能沒有,需要自己設定,本人用此方法在ubuntu15.10下安裝成功,gcc版本為4.7.4,g++為4.7.2。併成功編譯安裝CUDA Toolkit 7.5

接下來的步驟如前述-建立連結-部分一致,方便快捷的安裝方法

相關推薦

ubuntuCUDA編譯GCC降級安裝

1、原始碼安裝gcc 預安裝重要依賴 如果直接安裝GCC,可能會遇到以下問題: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ MPC : GMP :

Node--Ubuntu原始碼編譯安裝Node.js(時間比較長)

一.下載地址 下載地址:https://nodejs.org/en/download/ 二.下載原始碼 [email protected]:~# cd /usr/local/src/ [email protected]:/usr/local/src# wget

UbuntuImageMagick編譯安裝出現的問題.

由於專案需要, 所以要在Ubuntu安裝ImageMagick下面, 用的是Ubuntu 11. 剛開始本想著用apt-get來進行安裝, 但發現安裝是出現依賴的包版本過低而安裝不了(之前試過一次apt-get upgrade, 開機都開不了.) so, 逼著要用編譯安裝.

OpenCV在ubuntu編譯安裝

1 原始碼下載OpenCV官網:https://opencv.org/github地址: https://github.com/opencv/opencv/releases/tag/3.4.02 安裝依賴首先看官方的安裝說明,這個非常有必要,官方寫的比較好,基本按照官方說明進

UbuntuArm-Linux-GCC交叉編譯環境的搭建

1.下載arm-linux-gcc-3.4.1.tar.bz2到臨時的目錄下。 2.解壓 arm-linux-gcc-3.4.1.tar.bz2   #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2   解壓過程需要一段時間,解壓後的檔案形成

Ubuntucuda解除安裝

由於需要安裝cuda8.0,,所以需要解除安裝cuda7.5. 在/usr/local/cuda/bin 目錄下,有cuda 自帶的解除安裝工具uninstall_cuda_7.5.plcd /usr/local/cuda/bin sudo ./uninstall_cuda_7

ubuntu ssldump 編譯問題解決,及安裝使用

1,依賴 libpcap、libssl 庫,需要自己先裝; 2,ubuntu 下預設指定的庫路徑不正確的 ./configue 會有報錯:configure: error: Couldn't find PCAP library: needed for ssldump。 執

Ubuntu 如何查看已安裝的軟件

show 查看 軟件 grep aptitude whereis gre nbsp dpkg 1.查看安裝的所有軟件 dpkg -l 例如:dpkg -l | grep ftp 2.查看軟件安裝的路徑 dpkg -L | grep ftp 也可以用 wher

ubuntu交叉編譯mono

local config ubuntu16 align 交叉編譯 disable vfp ces ati 環境:ubuntu16.04 配置: CC=arm-linux-yourabi-gcc CFLAGS="-march=armv7-a -mfloat-abi=softf

ubuntu交叉編譯ffmpeg

-s extra cast miss lar har share security project 環境:ubuntu16.04 交叉編譯器版本:4.8.3 依賴x264,lame x264: 1.wget ftp://ftp.videolan.org/pub/x264/s

UbuntuLaravel的開發環境安裝及部署(Vagrant + Homestead)

2018-2-6 更新 注意! laravel/homestead box專案地址已經不再是原來的 https://atlas.hashicorp.com/laravel/boxes/homestead,而已經變更成 https://app.vagrantup.com/laravel/

Ubuntueclipse編譯c/c++環境配置

1,下載帶CDT外掛的eclipse版本        sudo apt-get install eclipse-cdt 2,安裝後啟動建立c++專案,然後在/project/properties下修改相關配置如下圖。不然會出現

linux ubuntuvsftp搭建,tar安裝包模式

linux ubuntu下vsftp搭建,tar安裝包模式 下載tar包:http://download.chinaunix.net/download.php?id=43934&ResourceID=19 下載得到vsftpd-3.0.2.tar.gz 上傳到linux/ho

Ubuntu JDK 和 SCALA的安裝

0.簡述 Java JDK在Linux系統有兩個版本,一個開源版本OpenJDK,還有一個Oracle官方版本JDK。一般系統中自帶的是OpenJDK,但常用的是Oracle的JDK。所以一般先解除安裝自帶的OpenJDK,再安裝Oracle的JDK。Scala執行與JVM之上,所以若要

ubuntu make 編譯錯誤:undefined reference to cv::line

在編譯一個專案時候出現 “undefined reference to cv::line” 的錯誤,是在連結其中一個靜態庫的時候出現的錯誤,錯誤如下: /home/build/lib/libapriltags.a(TagDetection.cc.o): In function `AprilTag

Ubuntu的opencv3.1.0安裝及contrib庫的安裝+eclipse環境配置

1、基本情況: Ubuntu 14.04 系統下; eclipse編譯器; 安裝並配置opencv3.1.0及其contrib庫 2.安裝流程: (1)安裝依賴包: sudo apt-get install build-essential sudo apt-get install cma

ubuntu apt-get install xxx安裝錯誤:install-info E: Sub-process /usr/bin/dpkg returned an error code (1)

         當我在編譯android原始碼的時候,缺少了一個gperf,所以我執行sudo apt-get install gperf,進行安裝。但是在進行安裝的時候,出現了一個我之前沒碰到過的問題: 正在

【小卒ubuntu使用】ubuntuzsh和fish的安裝使用

Fish 是"the friendly interactive shell"的簡稱,最大特點就是方便易用。很多其他 Shell 需要配置才有的功能,Fish 預設提供,不需要任何配置。 shell 有好幾種,目前最常用是 bash 和 zsh。文章本著花最少的時間學習工具的原則介紹;通過接觸zs

ubuntudlib編譯C++(共享庫)及使用,即cmake編譯dlib開原始檔的步驟和檔案結構,

一、cmake的工作機制         使用CMake很簡單。 構建過程是通過建立一個或多個CMakeLists檔案(實際上是CMakeLists.txt,但本指南將在大多數情況下脫離擴充套件)控制在專案的每個目錄中。

ubuntuc++編譯連結caffe的工程

最近在做深度網路相關的專案,我們通常可以從github上download很多相關的原始碼,但是在我們的機子上編譯的時候通常會遇到很多問題,將我最近踩的坑做了一些總結,希望對大家有所幫助。 1.如果直接g++  ×××.cpp 出現下面或者是出現某種語法錯誤之類的 [Cli