2011-06-26 33 views
6

Vì vậy, tôi cần sử dụng các vectơ trong dự án của mình. Tôi đã thay đổi tập tin .m thành .mm để biến nó thành Objective-C++. Tuy nhiên, khi tôi cố gắng nói:#include <vector> không có tập tin hoặc thư mục như vậy

#include <vector> 

Trong tệp .h nó không thể tìm thấy tệp hoặc thư mục. Nếu tôi đặt dòng mã mặc dù trong tập tin .mm của tôi mặc dù lỗi không xuất hiện, nhưng kể từ khi tôi cần một vector trong @interface (đó là trong của tôi. H) những gì tôi nên làm gì để làm cho tập tin .h tìm thấy tập tin vector?

Ngoài ra, tôi đã cố gắng thay đổi nó để biên dịch tất cả mọi thứ như Objective-C++, nhưng điều đó không làm việc vì tôi nhận được một số sai sót trong thư viện Cocos2d Tôi đang sử dụng ...

Trả lời

27

là tập tin .h của bạn là bao gồm trong bất kỳ tệp .h hoặc .m OTHER nào khác?

Nếu vậy, bạn sẽ phải tạo những (hoặc tệp bao gồm chúng, v.v.) thành .mm.

+0

Vì vậy, hãy kết hợp .h và và .mm với nhau? – Dair

+5

Không. Tệp tiêu đề cụ thể này (nói x.h) tự nhiên được bao gồm trong x.mm, nhưng có lẽ bạn đang sử dụng các đối tượng kiểu x trong một số mô-đun KHÁC, nói y. Do đó y.h sẽ bao gồm dòng "#include x.h". Bây giờ khi trình biên dịch biên dịch y.m, nó sẽ không được mong đợi mã C++, và do đó sẽ khiếu nại về dòng x.h của "bao gồm " khi nó đi qua nó. Do đó ym phải được đổi tên thành y.mm, mặc dù bạn không sử dụng bất kỳ mã C++ nào trong y.mm Cuối cùng, yh có thể bao gồm trong, ví dụ, zh và bạn phải chuyển đổi zm thành z.mm, v.v. vectơ trong tệp mm nếu bạn có thể. – mackworth

+0

Ok, đã hoạt động. Cảm ơn! – Dair

6

Nếu không có thay đổi bất kỳ .m để .mm hoặc bất cứ điều gì như thế, nếu bạn nhấp vào dự án của bạn, nhấp vào tagets-> xây dựng các thiết lập đi tất cả các con đường xuống "LLVM GCC 4.2 - Ngôn ngữ" bạn sẽ thấy Biên dịch nguồn là thay đổi giá trị đó thành Mục tiêu-C++;

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