2014-04-04 18 views
5

Vì vậy, tôi đang theo các hướng dẫn trên trang này: http://www.cplusplus.com/doc/tutorial/control/ Nhưng tôi đang gặp khó khăn khi thực hiện một dải/dựa trên vòng lặp. Tôi tìm thấy trang này: GNU GCC compiler updating Câu trả lời có nói rằng tôi nên mở "Dự án" và "Thuộc tính". Nhưng khi tôi thử điều đó, tùy chọn "Thuộc tính" bị chuyển sang màu xám mà không giải thích: http://imageshack.com/a/img571/4371/xd1x.png Vậy .. làm cách nào để kích hoạt dải/dựa trên vòng lặp?Lỗi: Phạm vi 'cho' vòng lặp không được phép trong chế độ C++ 98

+1

Liên kết PNG không hoạt động. (Đây là lý do tại sao nó được đề xuất để nhúng thông báo lỗi trong câu hỏi, thay vì liên kết đến các trang web bên ngoài) –

Trả lời

14

Vượt qua -std=c++11 gắn cờ trình biên dịch. Chắc chắn GCC phải đủ tươi (> = 4,7) để hỗ trợ tất cả các tiêu chuẩn hiện đại này. Đối với CodeBlocks 13.12: Cài đặt -> Trình biên dịch -> Tab "Cờ biên dịch" -> Tùy chọn "Có g ++ theo C++ 11 ISO C++ [-std = C++ 11]"

+0

Tôi đang đi qua một hướng dẫn của người mới bắt đầu, có nghĩa là tôi là một noob hoàn chỉnh ở đây. Điều gì có nghĩa là để vượt qua một lá cờ để trình biên dịch? – Sindre

+0

Vâng, chỉ định chuỗi đó trong số các tùy chọn trình biên dịch khác trong dòng lệnh, như sau: 'g ++ -std = C++ 11 -o test_executable test_source.cpp' – user3159253

+0

Bạn đang đánh giá cao kiến ​​thức của mình, tôi không biết viết ở đâu – Sindre

7

Giải pháp sử dụng nêu trên -std=c++11 không làm việc cho tôi.

Đây là chi tiết mục tiêu và phiên bản của trình biên dịch của tôi.
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: x86_64-linux-gnu

Khi tôi thử, đây là những gì đã xảy ra.
$ g++ -std=c++11 program.cpp cc1plus: error: unrecognized command line option ‘-std=c++11’

Điều này giải quyết được vấn đề cho tôi.
$ g++ -std=c++0x program.cpp

1

Sử dụng giải pháp trên g++ -std=c++0x program.cpp công trình. Tuy nhiên, lệnh cần được sửa đổi một chút để chạy chương trình với lệnh chung: ./program

tôi đã sử dụng g++ -std=c++0x -o program program.cpp và tất cả đã làm việc một cách hoàn hảo.

1

Cả hai:

g++ -std=c++11 -o test_executable test_source.cpp 
g++ -std=c++0x -o program program.cpp 

làm việc cho tôi.

Chỉ việc cần làm sau khi biên dịch là thực hiện test_executable (trong trường hợp đầu tiên) là ./test_executables hoặc chương trình (trong trường hợp thứ hai) là ./program.

0

Nếu bạn đang sử dụng QT5.5, bạn có thể đạt được điều này bằng cách thêm các dòng sau vào tệp .pro của mình.

CONFIG += c++11

Các vấn đề liên quan