Làm cách nào để cài đặt gcc mới nhất trên FreeBSD?


10

Làm cách nào để tôi cài đặt bản mới nhất gcctrên FreeBSD và thiết lập hệ thống để phiên bản mới nhất này được sử dụng để biên dịch các chương trình tiếp theo?

Tại thời điểm viết bài này, phiên bản mới nhất gcclà phiên bản 4.9.0. Và tôi sử dụng FreeBSD 10.0.

Tôi thực sự cần g++, trình biên dịch C ++; Nhưng tôi cần phải cài đặt một cái gì đó như gcc49gói cho nó, phải không?


Bạn muốn biên dịch tất cả các cổng với GCC hay bạn chỉ cần GCC?
Raphael Ahren

Tôi muốn gccbiên dịch phần mềm của tôi. Và có lẽ các cổng tôi sẽ cài đặt sau đó, nếu điều đó có thể được thực hiện.
Nickolai Leschov

Hãy nhớ rằng có nhiều nhánh khác nhau mà bạn có thể tải xuống phần mềm từ trên FreeBSD: unix.stackexchange.com/a/433876/128361
Mateusz Piotrowski

Câu trả lời:


16

Bạn có thể cài đặt GCC 4.9 bằng cách xây dựng nó từ các cổng với

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

hoặc nếu bạn có portmaster

portmaster -DHB lang/gcc49

hoặc nếu bạn thích các gói với

pkg install lang/gcc49

Nếu bạn đổi lang/gcc49sang, lang/gccbạn sẽ cài đặt phiên bản GCC ổn định gần đây nhất hiện tại, đây là GCC 4.7.

Khi bạn muốn xây dựng tất cả các cổng của mình bằng GCC thay vì Clang, bạn phải chỉnh sửa /etc/make.confvà thêm

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

và chỉnh sửa /etc/libmap.confvà thêm vào đó

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

Đây là một bài viết từ FreeBSD.org giải thích điều này chi tiết hơn.

Nhưng bạn không thực sự cần GCC cho các cổng, tất cả các cổng đã phụ thuộc vào GCC sẽ sử dụng GCC.

Biên tập:

Và yeah g++sẽ được cài đặt với tất cả các cổng GCC.


4
Lưu ý rằng bây giờ lang/gcc5cũng tồn tại.
PythonNut

2
lang/gcc7(tháng 12 năm 2017)
cắt ngắn

lang / gcc sẽ cài đặt phiên bản mới nhất của gcc.
dùng917099

@ user917099 Không phải lúc nào lang / gcc cũng chậm một hoặc hai phiên bản. Tại thời điểm câu trả lời được viết lang/gcckhông chỉ vào lang/gcc49.
Raphael AhDR
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.