Jak zainstalować najnowszą gcc na FreeBSD?


10

Jak zainstalować gccnajnowszą wersję na FreeBSD i skonfigurować system, aby ta najnowsza wersja była używana do kompilowania kolejnych programów?

W chwili pisania tego tekstu najnowszą wersją gccjest wersja 4.9.0. I używam FreeBSD 10.0.

Naprawdę potrzebuję g++kompilatora C ++; ale muszę zainstalować coś takiego jak gcc49pakiet, prawda?


Dp chcesz skompilować wszystkie porty z GCC czy potrzebujesz tylko GCC?
Raphael Ahrens

Chciałbym gccskompilować moje oprogramowanie. A może porty, które później zainstalowałbym, jeśli można to zrobić.
Nickolai Leschov

Pamiętaj, że istnieją różne gałęzie, z których możesz pobrać oprogramowanie na FreeBSD: unix.stackexchange.com/a/433876/128489
Mateusz Piotrowski

Odpowiedzi:


16

Możesz zainstalować GCC 4.9, budując go z portów za pomocą

cd /usr/port/lang/gcc49; make install clean

lub jeśli masz portmaster

portmaster -DHB lang/gcc49

lub jeśli wolisz pakiety z

pkg install lang/gcc49

Jeśli zmienisz lang/gcc49na lang/gcc, zainstalujesz najnowszą stabilną wersję GCC, obecnie jest to GCC 4.7.

Jeśli chcesz zbudować wszystkie porty za pomocą GCC zamiast Clang, musisz edytować /etc/make.confi dodawać

.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc49)
CC=gcc49
CXX=g++49
CPP=cpp49
.endif

i edytuj /etc/libmap.confi dodaj tam

libgcc_s.so.1   gcc49/libgcc_s.so.1
libgomp.so.1    gcc49/libgomp.so.1
libobjc.so.3    gcc49/libobjc.so.4
libssp.so.0     gcc49/libssp.so.0
libstdc++.so.6  gcc49/libstdc++.so.6

Oto artykuł z FreeBSD.org, który wyjaśnia to bardziej szczegółowo.

Ale tak naprawdę nie potrzebujesz GCC dla portów, wszystkie porty, które już zależą od GCC, będą używać GCC.

Edytować:

I tak g++zostanie zainstalowany ze wszystkimi portami GCC.


4
Zauważ, że teraz już lang/gcc5istnieje.
PythonNut

2
i lang/gcc7(grudzień 2017 r.)
obcięty

lang / gcc zainstaluje najnowszą wersję gcc.
user917099

@ user917099 Nie zawsze zdarza się, że lang / gcc ma jedną lub dwie wersje za sobą. W czasie, gdy odpowiedź była napisana, lang/gccnie wskazywał na lang/gcc49.
Raphael Ahrens,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.