g ++ không nhận ra tiêu chuẩn 14 (-std = c ++ 14)


7

Tôi đang dùng Ubuntu 14.04 và có g ++ 4.8.5 (Ubuntu 4.8.5-2ubfox1 ~ 14.04.1). Khi cố gắng sử dụng -std=c++14tham số, g ++ xuất ra: unrecognized command line option '-std=c++14'

Ngay cả khi chạy apt-get updateapt-get upgrade, vấn đề vẫn còn đó. Chuyện gì đang xảy ra ở đó vậy?


Bạn có thể có được các phiên bản gcc gần đây hơn cho bản phát hành của bạn. Kiểm tra PPA. Tôi không chắc chắn nếu Ubuntu làm backport chính thức. Mặt khác, việc nhập các phiên bản gần đây hơn của gcc cũng là một khả năng.
Faheem Mitha

Câu trả lời:


6

Từ trang web của GCC :

Vì tiêu chuẩn ISO C ++ 14 cuối cùng chỉ mới được công bố gần đây, hỗ trợ của GCC là thử nghiệm

Để bật hỗ trợ C ++ 14, hãy thêm tham số dòng lệnh -std = c ++ 14 vào dòng lệnh g ++ của bạn. Hoặc, để bật tiện ích mở rộng GNU ngoài tiện ích mở rộng C ++ 14, hãy thêm -std = gnu ++ 14.

Trong trường hợp của bạn, bạn đã thử -std=gnu14tùy chọn để xem nó hoạt động chưa?

Các tính năng của C ++ 14 đã có sẵn từ GCC 4.8, vì vậy trong trường hợp của bạn, bạn nên có một số hỗ trợ cho việc này.

Từ trang g ++ man, tôi tìm thấy điều này:

c ++ 1y Bản sửa đổi tiếp theo của tiêu chuẩn ISO C ++, dự kiến ​​dự kiến ​​cho năm 2014. Hỗ trợ mang tính thử nghiệm cao và gần như chắc chắn sẽ thay đổi theo những cách không tương thích trong các bản phát hành trong tương lai.

gnu ++ 1y phương ngữ GNU của -std = c ++ 1y. Hỗ trợ mang tính thử nghiệm cao và gần như chắc chắn sẽ thay đổi theo những cách không tương thích trong các phiên bản tương lai.

Vì vậy, có vẻ như tùy chọn để sử dụng có thể không c++14nhưng c++1ythay vào đó, hãy thử.


ps : Tôi sử dụng phiên bản mới hơn phiên bản của bạn và đây là những tùy chọn tôi cóg++

$  g++ --version
g++ (GCC) 4.9.1 20140922 (Red Hat 4.9.1-10)

-std=c++1ysẽ hoạt động với GCC 4.8, tuy nhiên, tất nhiên, việc triển khai có thể chưa hoàn tất.
muru

@fduff: "Các tính năng của C ++ 14 đã có sẵn từ GCC 4.8". Không hoàn toàn: C ++ 11 và C ++ 14 chỉ được hỗ trợ từ GCC 5, do chuỗi bò buồn. Tôi nghĩ cũng std::listcó một lỗi ít nghiêm trọng hơn trong các phiên bản trước đó yêu cầu sizelà O (n), nhưng tiêu chuẩn nói rằng nó phải là O (1).
dùng877329
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.