Cập nhật GCC lên phiên bản 6.3 [đã đóng]


10

Tôi muốn sử dụng một số tính năng C ++ chỉ có sẵn trong các phiên bản gần đây hơn của ngôn ngữ. Vấn đề là Ubuntu 15.04 (Verv Vervet) đã cài đặt 4.9.2 và xem đầu ra tôi nhận được từ apt-get install gcc :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]

Nó nói nó đã là phiên bản mới nhất. Tôi không hiểu tại sao ...


1
Ubuntu 15.04 không còn được hỗ trợ, có lẽ bạn nên chuyển sang phiên bản mới hơn. Các phiên bản cũ của Ubuntu thường không có các phiên bản gói mới nhất, bạn phải nâng cấp bản phân phối hoặc cài đặt gói của bạn từ ppa hoặc xây dựng từ nguồn.
Raziman TV

Câu trả lời:


10

Tùy chọn duy nhất tồn tại là Xây dựng nó từ Nguồn , vì bạn đang chạy phiên bản Vivid (15.04) đã đạt EOL (End Of Life).

  1. Tải về mã nguồn và các điều kiện tiên quyết của nó:

    wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
    tar jxvf gcc-6.3.0.tar.bz2
    cd gcc-6.3.0
    ./contrib/download_prerequisites
    
  2. Biên dịch các nguồn (lưu ý: lệnh này sẽ khác nhau tùy thuộc vào nơi ban đầu bạn lưu tệp lưu trữ .bz2), bạn cũng có thể sửa đổi tùy chọn cho buildlệnh. Trong trường hợp này, chúng tôi sẽ sử dụng tùy chọn rất cơ bản:

    cd ~
    mkdir gcc-build && cd gcc-build
    ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
    

    LƯU Ý : Đảm bảo bạn đã đọc các tài liệu để xem tùy chọn có sẵn.

  3. Bây giờ chúng tôi đã sẵn sàng để xây dựng gcc

    • Chạy makelệnh để xây dựng gcc, bước này sẽ mất nhiều thời gian để hoàn thành.

      make
      
    • Khi giai đoạn trên được hoàn tất, bạn có thể cài đặt được xây dựng gcc với:

      sudo make install
      

      Khi quá trình này đã hoàn tất, hãy chạy lệnh gcc --versionđể xác minh rằng việc cài đặt đã hoàn tất thành công.


Tùy chọn "-v" làm gì? Tôi dường như không thể tìm thấy nó trên gcc.gnu.org/install/configure.html
Fabrício Santana


Thư mục g ++ 6.3 được cài đặt khi làm theo các bước này? Để ~/gcc-6.3.0, đến ~/gcc-buildhoặc một số thư mục khác? Không nên xóa bất kỳ thư mục nào đã được tạo sau khi chạy các lệnh này hay tất cả chúng vẫn được yêu cầu?
HelloGoodbye

1
tar xzvf gcc-6.3.0.tar.bz2chỉ in gzip: stdin: not in gzip format; tar: Child returned status 1; tar: Error is not recoverable: exiting now, vì vậy tôi đã giải nén tệp lưu trữ với trình quản lý lưu trữ.
HelloGoodbye

Khi tôi chạy ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0, tôi nhận được /usr/bin/ld: cannot find crt1.o: No such file or directory, /usr/bin/ld: cannot find crti.o: No such file or directory, /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc, /usr/bin/ld: cannot find -lgccvà các lỗi tương tự.
HelloGoodbye

4

Ubuntu 15.04 đã hết thời hạn sử dụng và không có hỗ trợ, điều đó có nghĩa là sẽ không có thêm bản cập nhật hay sửa lỗi nào (bảo mật, lỗi hoặc tính năng) sẽ được công bố.

Bạn nên cập nhật hoặc cài đặt lại với phiên bản Ubuntu mới hơn.

Tôi sẽ khuyên bạn nên đi với 16.10 (hỗ trợ 9 tháng) đã có chi nhánh gcc 6.x trên repos chính thức.

Nhưng bạn cũng có thể sử dụng 16.04 LTS (hỗ trợ 5 năm) và thêm ppa không đáng tin cậy / không được bảo vệ để có được các phiên bản gcc mới nhất như phiên bản này

Cá nhân, tôi sẽ chọn đi với 16.10 và tiếp tục cập nhật từ các kênh chính thức sang các phiên bản phần mềm / Ubuntu sau này mà không cần thêm (hầu hết) bất kỳ ppa nào .

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.