Làm thế nào để sử dụng GCC 4.7 thay cho 4.6?


8

Vì vậy, tôi đang làm việc trên một dự án và tôi muốn sử dụng một số tính năng C11 cho C. Để sử dụng các tính năng đó GCC 4.7 là bắt buộc, vì vậy tôi đã đi đến synap và tìm kiếm 4.7, và tôi đã tìm thấy các gói gcc-4.7-base cài đặt nó [1].

Vì vậy, bây giờ gcc-4.7-base đã được cài đặt, tôi dự kiến ​​có thể sử dụng 4.7, nhưng không, khi tôi làm gcc --versionnó vẫn hiển thị 4.6.3 thậm chí nhiều hơn, khi tôi cố gắng gọi trực tiếp 4.7 (thông qua /usr/bin/gcc-4.7) thì nó không tồn tại, mặc dù một gcc-4.6thực thi không tồn tại.

Làm cách nào để "kích hoạt" GCC 4.7? Tôi đọc ở đây , bạn làm một số thứ điên rồ với update-alternativesnó, nhưng nó không hoạt động với tôi vì gcc-4.7thực thi không thực sự tồn tại trên máy của tôi.

Lưu ý: 1. Tôi cũng thấy gcc-4.6-base, vì vậy tôi nghĩ rằng tôi đã gỡ cài đặt nó, nhưng synap đã cố gắng xóa mọi gói tôi đã cài đặt và cài đặt thời gian chạy Java, vì vậy vì lý do rõ ràng tôi đã quyết định không gỡ bỏ nó.

Câu trả lời:


13

Sau đây làm việc cho tôi.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

Nguồn để tham khảo


Tôi không nghĩ điều này trả lời câu hỏi, vì OP đặc biệt nói rằng update-alternativestuyến đường sẽ không hoạt động với họ vì họ không có sẵn nhị phân gcc-4.7. Thật vậy, cố gắng làm theo các hướng dẫn trong câu trả lời này sau khi cài đặt gcc-4.7-base dẫn đến lỗi:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious

0

Các gccnhị phân là trong gcc-X.Ygói, không gcc-X.Y-base. Cái sau là một sự phụ thuộc của một trong hai gcc-X.Yhoặc libstdc++.

Về cơ bản, bạn chỉ cần cài đặt gcc-4.7và sau đó gọi nó là gcc-4.7từ tệp tạo tệp của bạn hoặc sử dụng install-alternativesđể đặt nó làm mặc định.

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.