2012-05-03 43 views
5

Tôi là người dùng Mac OS X Lion sử dụng Xcode cho C++ và dường như không có bản cập nhật nào cho Xcode. Tôi không xuất hiện để có thể biên dịch C + + 11-độc quyền mã, nhưng vì lý do gì, tôi nghĩ rằng Apple đã nhận C + + 11 khá nhiều thực hiện. Và có, tôi có hỗ trợ cho các công cụ dòng lệnh.Tôi gặp sự cố với C++ 11 trong Xcode

Sau đó, một lần nữa, đó có thể chỉ là tôi. Nếu vậy, có bất kỳ loại IDE hỗ trợ C++ 11, hoặc bất kỳ cách nào để nâng cấp?

+4

Tàu Xcode 4.2 với clang và clang hỗ trợ C++ 11 một phần. Bạn có thể chuyển sang clang trong tùy chọn xây dựng. –

+0

Bạn có thể sử dụng Macports, họ gửi tất cả các phiên bản gcc mới nhất http://www.macports.org/ – inf

Trả lời

8

tôi sử dụng Xcode và thiết lập các cài đặt sau:

C++ phương ngữ ngôn ngữ: C++ 11 hoặc GNU ++ 11

C++ standart thư viện: libC++ (LLVM C++ standart thư viện với C++ 11 hỗ trợ)

phiên bản Xcode: 4.3.2

XCode project settings

+0

Điều đó dường như hoạt động! Cảm ơn! – Whovian

+0

Đừng quên chọn trình biên dịch LLVM. – sbooth

+2

Tôi gặp vấn đề với việc liên kết std lib. Nếu tôi chọn libC++ (thư viện chuẩn LLVM C++ với hỗ trợ C++ 11) thì linker không thể liên kết "std :: string :: find (char, unsigned long) const" và các ký hiệu khác, nếu tôi chọn libstC++ (GNU C++ Standart library) sau đó có lỗi trình biên dịch trong tiêu đề "không thể tìm thấy :: std :: move". Tôi đang làm gì sai? Làm sao tôi có thể giải quyết việc này? Cảm ơn. – BergP

3

Nếu bạn đang sử dụng Xcode 4.3, có một số cài đặt dự án có liên quan bạn cần sử dụng các tính năng C++ 11. Đầu tiên là sử dụng trình biên dịch clang. Một cái gì đó như

GCC_VERSION = com.apple.compilers.llvm.clang.1_0 

trong .xcconfig của bạn sẽ thiết lập hoặc bạn có thể sử dụng GUI.

Tiếp theo, bạn cần phải nói cho LLVM mà C++ tiêu chuẩn để sử dụng:

CLANG_CXX_LANGUAGE_STANDARD = gnu++11 

này sẽ làm cho các tính năng ngôn ngữ như phạm vi trụ sở, nhà thầu được ủy quyền, vv sẵn.

Cuối cùng, nếu bạn muốn sử dụng C++ 11 tính năng STL (như std::unordered_map), bạn cần phải sử dụng STL ++ libc:

CLANG_CXX_LIBRARY = libc++ 
+0

Tôi thực sự xin lỗi, tôi rất mới, nhưng chính xác tôi làm điều đó như thế nào? Rõ ràng, đó là những mệnh lệnh cho LLVM hay thứ gì đó sắp xếp, nhưng tôi thực sự không biết phải làm gì. – Whovian

+0

Nếu bạn không sử dụng tệp .xcconfig, bạn có thể chọn tệp dự án của mình trong thanh tra của Xcode và bạn sẽ thấy danh sách các tùy chọn tương tự như những gì Alexander đã đăng. – sbooth

0

On XCode 5/opencv 2.4.9, tôi có thể chọn:

XCode settings

Và nó được xây dựng mà không có lỗi. Nếu tôi đặt libC++ mà không chỉ định Ngôn ngữ C++ thì tôi sẽ gặp vấn đề tương tự như OP

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