Làm cách nào để cài đặt g ++ 4.7.2 & c ++ 11 trên CentOS 5.x?


8

Tôi đang cố gắng để cài đặt ổn định mới nhất g++c++11. Chủ nhà của tôi đã làm điều đó thông qua yum installvà nghĩ rằng đó là lần mới nhất, nhưng không phải thế, và giờ họ đang nói rằng điều này vượt quá mức hỗ trợ của họ.

Tôi đã xem xét tất cả về cách thực hiện điều này và tôi không thể làm bất cứ điều gì hiệu quả, hoặc tôi không biết giải pháp được đề xuất là gì.

Cách dễ nhất để cài đặt g++4.7.2 và c++11trên CentOS 5.9 là gì?


2
Tôi không thấy bất cứ điều gì trong đó (trong mắt tôi rất thiếu kinh nghiệm) đòi hỏi một số tính năng C ++ mới. Để cài đặt phần mềm bổ sung (từ nguồn, không kém) không được xem nhẹ (nếu bạn đang sử dụng CentOS, có lẽ đó là một ứng dụng enterprisey). Không dành cho ai đó có nhiều giờ trải nghiệm Linux, trong mọi trường hợp. Xem xét lại các lựa chọn của bạn một cách cẩn thận.
vonbrand

1
những gì đòi hỏi lambda rất kiên định? Có lẽ cách tốt nhất của bạn là cài đặt Fedora mới nhất, trong đó gcc-4.7.2 là trình biên dịch mặc định, được duy trì bởi bản phân phối ?
vonbrand

2
Tôi không phải là chuyên gia về C ++, nhưng "sắp xếp theo N-th int trong một vectơ int" yêu cầu so sánh giữa các vectơ và đó không phải là một yêu cầu kỳ lạ chỉ được điền đầy đủ với C ++ mới nhất. Chắc chắn, nó có thể dễ dàng hơn, nhưng nếu điều gì đó đơn giản không thể được thực hiện từ các phiên bản đầu tiên của STL, tôi sẽ hoàn toàn lúng túng. Có được một chuyên gia C ++ trên tàu?
vonbrand

Bạn đã xem xét các thư viện BOOST? Một tỷ lệ lớn C ++ 11 đến từ đó ...
Aaron D. Marasco

c ++ 11 không phải là trình biên dịch, nó là một tiêu chuẩn. xem câu trả lời của tôi
Tiếng Ba Tư

Câu trả lời:


9

Từ câu trả lời này đến "Cài đặt gcc 4.7 trên CentOS [6.x]", cách dễ nhất để có được g++4.7 và các công cụ và thư viện cần thiết, cho CentOS 5.x là thông qua devtoolsgói:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0

Kể từ khi bạn đang chạy g++bằng tay (như trái ngược với thông qua make), bạn sẽ cần phải cập nhật của bạn $PATHbiến nên vỏ của bạn sẽ sử dụng mới gcc, g++vv nhị phân:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH

Tại thời điểm này, g++phiên bản 4.7.0 của bạn phải là

$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Xin lưu ý rằng việc cài đặt gccvà các công cụ và thư viện liên quan theo cách này phụ thuộc vào người bảo trì kho lưu trữ để giữ cho các gói của họ được cập nhật.

Nếu bạn quan tâm đến việc gcccập nhật thông tin của mình, bạn có thể muốn xem xét việc xây dựng gcctừ nguồn .

Ngoài ra, việc biên dịch các chương trình với phiên bản khác g++libstdc++hơn được cài đặt trên hệ thống của bạn có thể gây ra tất cả các loại Vui , đối phó với những gì nằm ngoài phạm vi của câu trả lời này. Có thể đáng để chuyển sang một bản phân phối Linux có hỗ trợ cho những gì bạn đang làm.


Tôi đã cập nhật các hướng dẫn - gói bạn muốn yumcài đặt là devtoolset-1.0, vì nó chứa các công cụ phát triển cần thiết khác; và bạn sẽ muốn cập nhật $PATHbiến của mình kể từ khi bạn khởi chạy g++từ dòng lệnh.
Reed Kraft-Murphy

Khi tôi tạo một giao diện điều khiển mới, gcc vẫn ở phiên bản cũ. Làm cách nào để đặt phiên bản mới thành mặc định?
BT

1
Để đặt mục này vĩnh viễn, bạn phải thêm export PATH..dòng trong ~ / .profile hoặc ~. / Profile_bash hoặc tương đương: superuser.com/questions/809250/ Lỗi
BT

Vẫn hiển thị "g ++ (GCC) 4.1.2" sau này :-(
IllidanS4 muốn Monica quay lại vào

1

Trình quản lý gói rất tuyệt, nhưng (có thể hiểu được) thường sẽ không bao gồm phiên bản phần mềm mới nhất. CentOS là một bản phân phối đặc biệt tập trung vào các máy chủ, ưu tiên sự ổn định (và thử nghiệm rộng rãi) trong việc có bản mới nhất và đẹp nhất. Đây là giải pháp của bạn:

Thay đổi bản phân phối

Các bản phân phối khác như Arch Linux, Sabayon Linux hoặc Debian "Sid" bao gồm các phiên bản mới nhất nhanh hơn rất nhiều. Bạn có thể xem xét thay đổi distro.

Tự xây dựng nó

Nếu bạn bị mắc kẹt với CentOS, cách tốt nhất của bạn là xây dựng gcc từ nguồn . Điều đó có nghĩa là lấy mã nguồn, đảm bảo các phụ thuộc đã có trên hệ thống của bạn (nếu không, tôi chắc chắn bạn có thể lấy chúng từ trình quản lý gói CentOS), biên dịch nguồn thành tệp thực thi nhị phân và cài đặt tệp thực thi trên hệ thống .

Chắc chắn đây không phải là cách dễ nhất để làm điều đó, nhưng bạn sẽ học được rất nhiều về Unix trong quá trình này. Hãy chắc chắn đọc tài liệu một vài lần để đảm bảo bạn nhận được mọi thứ và đặt câu hỏi nếu một cái gì đó cụ thể không rõ ràng.

Kiên nhẫn

Tại một số điểm, phiên bản này (hoặc mới hơn) của gcc / g ++ sẽ vào trình quản lý gói. Nếu bạn chờ đợi (tối đa vài tháng, tôi không quen lắm với chu kỳ phát hành CentOS), cuối cùng bạn sẽ nhận được những gì bạn muốn.


1

Hừm, tôi quá mới để nhận xét về câu trả lời của Sậy. Nó làm việc tốt cho tôi. Điều duy nhất tôi muốn lưu ý (có lẽ đây là điều gì đó đối với Reed?) Là tôi phải cài đặt với một dòng lệnh hơi khác:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(Câu trả lời của Reed --enablerepo=testing-devtools-6đã không hoạt động.)

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.