Using newer gcc in /opt/netapps: Difference between revisions
Jump to navigation
Jump to search
Fit script to version 5.2 |
Snippet failed for 5.2 Now it works |
||
| Line 1: | Line 1: | ||
[[Category:software-faq]] | [[Category:software-faq]] | ||
Gcc- | |||
Gcc-5.2 is in /opt/netapps/gnu/gcc/5.2. In order for you to use it, this may have to be appended to your .profile, .bash_profile or whatever applies. | |||
# This is a bash snippet, to be sourced from .profile | # This is a bash snippet, to be sourced from .profile | ||
GCCBASE="/opt/netapps/gnu/gcc/5.2" | GCCBASE="/opt/netapps/gnu/gcc/5.2" | ||
LIBDIRS="$(find ${GCCBASE} -iname \*\.so\.\* -exec dirname {} \;|sort |uniq|grep -v 32$|tr '\n' ':')" | |||
# If you want the newer tools by default, put them at the beginning of $PATH | # If you want the newer tools by default, put them at the beginning of $PATH | ||
| Line 13: | Line 17: | ||
# For good measure: default compiler flags for the C++ course | # For good measure: default compiler flags for the C++ course | ||
export CXXFLAGS="${CXXFLAGS} -Wall -std=c++ | export CXXFLAGS="${CXXFLAGS} -Wall -std=c++14" | ||
# This is for during compile: prefer newer headers | # This is for during compile: prefer newer headers | ||
| Line 19: | Line 23: | ||
# This is for linking during build: prefer newer libraries | # This is for linking during build: prefer newer libraries | ||
export LD_LIBRARY_PATH="${ | # (with 5.2, this seems to affect run-time) | ||
export LD_LIBRARY_PATH="${LIBDIRS}:${LD_LIBRARY_PATH}" | |||
# With 5.2, this affects build time | |||
export LIBRARY_PATH="${LIBDIRS}:${LIBRARY_PATH}" | |||
# This is for runtime linking: prefer older libraries | # This is for runtime linking: prefer older libraries | ||
export LD_RUN_PATH="${LD_RUNPATH}:${GCCBASE}/lib/../lib64" | #export LD_RUN_PATH="${LD_RUNPATH}:${GCCBASE}/lib/../lib64" | ||
# Man should also find the newer manpages | # Man should also find the newer manpages | ||
export MANPATH="${MANPATH}:${GCCBASE}/share/man" | export MANPATH="${MANPATH}:${GCCBASE}/share/man" | ||
Please note: /opt is *NOT* in ld.so.conf, and should not be | Please note: /opt is *NOT* in ld.so.conf, and should not be | ||
Revision as of 07:12, 18 August 2015
Gcc-5.2 is in /opt/netapps/gnu/gcc/5.2. In order for you to use it, this may have to be appended to your .profile, .bash_profile or whatever applies.
# This is a bash snippet, to be sourced from .profile
GCCBASE="/opt/netapps/gnu/gcc/5.2"
LIBDIRS="$(find ${GCCBASE} -iname \*\.so\.\* -exec dirname {} \;|sort |uniq|grep -v 32$|tr '\n' ':')"
# If you want the newer tools by default, put them at the beginning of $PATH
export PATH="${PATH}:${GCCBASE}/bin"
# Have Make pick the newer compiler
export CXX="${GCCBASE}/bin/g++"
# For good measure: default compiler flags for the C++ course
export CXXFLAGS="${CXXFLAGS} -Wall -std=c++14"
# This is for during compile: prefer newer headers
CPLUS_INCLUDE_PATH="${GCCBASE}/include:${CPLUS_INCLUDE_PATH}"
# This is for linking during build: prefer newer libraries
# (with 5.2, this seems to affect run-time)
export LD_LIBRARY_PATH="${LIBDIRS}:${LD_LIBRARY_PATH}"
# With 5.2, this affects build time
export LIBRARY_PATH="${LIBDIRS}:${LIBRARY_PATH}"
# This is for runtime linking: prefer older libraries
#export LD_RUN_PATH="${LD_RUNPATH}:${GCCBASE}/lib/../lib64"
# Man should also find the newer manpages
export MANPATH="${MANPATH}:${GCCBASE}/share/man"
Please note: /opt is *NOT* in ld.so.conf, and should not be
Later versions
You may find that still later versions are available. Check /opt/netapps/gnu/gcc, and alter the above script by adjusting the line
GCCBASE="/opt/netapps/gnu/gcc/5.2"