Re: [問題] 如何有效管理各個版本的gcc/g++

看板LinuxDev作者 (會走路的冰塊)時間17年前 (2008/06/29 01:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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
文章代碼(AID): #18PdGTMH (LinuxDev)
文章代碼(AID): #18PdGTMH (LinuxDev)