gcc를 설치하는데, 이때 설치하는 폴더만 변경해주면 된다.
/usr/local/bin/gcc 에 기본적으로 설치가 되던가??
이곳에 말고 다른곳에 깔면 그만이다. 그리고 compile할때는 지정하고 싶은 gcc를 지정하면된다.
여튼간에 gcc설치하는 순서가
#> gcc_source/configure --prefix=/target_directory
make && make install
하면 끝이다.
이때 (gcc_source 에서 ./configure를 하지 않도록 하자 )
나같은 경우 linux 서버의 gcc가 구버젼이고, 나는 신버젼이 필요하였다.
그러나 함께쓰는 cluster에서는 마음대로 gcc를 바꿀수는 없는노릇...( 다른 user에게 큰 피해를 끼칠수있으므로..)
나만의 gcc를 설치하고 사용하여야했다.
gcc new version을 설치후에
환경변수 PATH에 새로운 gcc/bin 을 가리도록 제일먼저 추가해주면된다.
그럼 gcc를 call 할때 PATH의 앞부분부터 참조하므로 새로운 gcc를 가지고 compile을 하게 될 것이다...
GCC 공식홈에서 추천하는 방법 :
How to install multiple versions of GCC
It may be desirable to install multiple versions of the compiler on the same system. This can be done by using different prefix paths at configure time and a few symlinks.
Basically, configure the two compilers with different --prefix options, then build and install each compiler. Assume you want "gcc" to be the latest compiler and available in /usr/local/bin; also assume that you want "gcc2" to be the older gcc2 compiler and also available in /usr/local/bin.
The easiest way to do this is to configure the new GCC with --prefix=/usr/local/gcc
and the older gcc2 with --prefix=/usr/local/gcc2
. Build and install both compilers. Then make a symlink from /usr/local/bin/gcc
to /usr/local/gcc/bin/gcc
and from/usr/local/bin/gcc2
to /usr/local/gcc2/bin/gcc
. Create similar links for the "g++", "c++" and "g77" compiler drivers.
An alternative to using symlinks is to configure with a --program-transform-name
option. This option specifies a sed command to process installed program names with. Using it you can, for instance, have all the new GCC programs installed as "new-gcc" and the like. You will still have to specify different --prefix
options for new GCC and old GCC, because it is only the executable program names that are transformed. The difference is that you (as administrator) do not have to set up symlinks, but must specify additional directories in your (as a user) PATH. A complication with --program-transform-name
is that the sed command invariably contains characters significant to the shell, and these have to be escaped correctly, also it is not possible to use "^" or "$" in the command. Here is the option to prefix "new-" to the new GCC installed programs:
--program-transform-name='s,\\\\(.*\\\\),new-\\\\1,'
With the above --prefix
option, that will install the new GCC programs into /usr/local/gcc/bin
with names prefixed by "new-". You can use --program-transform-name
if you have multiple versions of GCC, and wish to be sure about which version you are invoking.
If you use --prefix
, GCC may have difficulty locating a GNU assembler or linker on your system, GCC can not find GNU as/GNU ld explains how to deal with this.
Another option that may be easier is to use the --program-prefix=
or --program-suffix=
options to configure. So if you're installing GCC 2.95.2 and don't want to disturb the current version of GCC in /usr/local/bin/
, you could do
configure --program-suffix=-2.95.2 <other configure options>
This should result in GCC being installed as /usr/local/bin/gcc-2.95.2
instead of /usr/local/bin/gcc
.
출처 : http://gcc.gnu.org/faq.html#multiple