Re: [問題] 如何有效管理各個版本的gcc/g++
※ 引述《typecommand (:))》之銘言:
: 由於要測試的關係,裝了很多版本的gcc/g++
: 以arm平台上就有3種版本,分別為2.95.3/3.3.2/3.4.1
: 當初安裝上述3個版本的arm-gcc/g++是直接解壓縮到/usr/local/arm
: 然後為了切換各個不同版本的arm-gcc/g++,是採用在/etc/profile做
: 路徑的設定,如pathmunge /usr/local/arm/2.95.3/bin,如此一來就
: 不用到特定的目錄才能執行該版本的gcc/g++
正常來說不需要改到 /etc/profile 吧
: 另外redhat9本身內建一個x86平台gcc/g++ 3.3.2版,是放在/usr/bin
: gcc/g++ 3.3.2版的執行檔名為gcc/g++
: ,另外我還安裝了x86平台gcc/g++ 2.96版,是採用rpm -ivh方式安裝,
: 也是放在/usr/bin,執行檔名為gcc296/g++296,也因為執行檔名不同,
: 所以可以相安無事。
: 我想問的是
: 1.為何gcc/g++3.3.2和gcc/g++2.95不需要設定pathmunge就可以在任何
: 地方執行
: 2.如果下次我還想安裝其他版本的gcc/g++,也是採用rpm -ivh安裝的話
: ,如果又放在/usr/bin,萬一執行檔名和之前已安裝的compiler一致
: 的話,請問要如何解決,有沒有一個統一一致且有效的方法來管理各
: 個不同平台/版本的compiler,謝謝大家。
Sorry 我不知道什麼是 pathmunge.
通常你裝了數個版本的 gcc 之後,/usr/bin/gcc 應該只是一個 symbolic link
指向真正的 gcc 執行檔。在我自己的電腦裡就像這樣的情況
lrwxrwxrwx 1 root root 7 2006-07-01 00:31 gcc -> gcc-4.0
-rwxr-xr-x 1 root root 81392 2005-10-26 20:25 gcc-3.3
-rwxr-xr-x 1 root root 85008 2006-03-16 18:51 gcc-3.4
-rwxr-xr-x 1 root root 93584 2006-04-21 06:22 gcc-4.0
在 cross compiling 的人,通常會有好幾份不同的 toolchain。
若是我遇到這樣的情況,我會分別放在不同的目錄下
/usr/local/arm-A/usr
/lib
/usr/local/arm-B/usr
/lib
編譯前增加路徑到 PATH 的變數裏面,configure 的時候把 cross 打開
如果你有看一下編譯的 Makefile 就會發現,正常的 Makefile [1]
編譯時是用 $(CC) 這個變數去編譯,而不是用 hard code 的 gcc
而 $(CC) 可以在你做 configure 的時候指定
./configure CC=gcc-3.4
總結來說
* 把不同的 compile tool 放在不同的路徑底下
* 在 configure 的時候就把該餵的選項餵進去,讓 autotool 去找到你所預期的工具
[1] 很不幸地,有時候遇到很芭樂的 Makefile 就會頭暈。
openssl 就是一個很好的例子 =.=
--
我想你會衰成這樣都是我害的
---- Tizzy Mac
緊張的麥金塔?這是誰(._.?)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.231.115
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章