2012-01-16 3 views
6

Khi kiểm tra các "android-ndk-linux_x86/nguồn/cxx-STL/gnu-libstdC++/include/bộ nhớ" tập tin tiêu đề, tôi thấy rằng tiêu đề này bao gồm tập tin tiêu đề STL khác theo cờLàm thế nào để bật tiêu chuẩn thử nghiệm "C++ 0X" khi biên dịch các tệp .cpp trong Android-ndk (r7)?

__GXX_EXPERIMENTAL_CXX0X__ 

. Tôi nghĩ cờ này liên quan đến tiêu chuẩn "C++ 0X" và tiêu chuẩn này có thể chưa được thử nghiệm trong Android-ndk r7. Tuy nhiên, tôi muốn bật tiêu chuẩn C++ này trong dự án của tôi. (Tôi không chắc liệu tiêu chuẩn "C++ 0X" này đã được bật theo mặc định hay chưa)

Tôi muốn biết làm thế nào tôi nên yêu cầu Android-ndk đặt cờ này khi tôi biên dịch tệp .cpp trong "project/jni" thư mục của một dự án Android. Hoặc làm cách nào tôi có thể bật chuẩn "C++ 0X" thử nghiệm trong ứng dụng của mình.

Tôi có cần chỉ định cờ sử dụng không, ví dụ: LOCAL_CPPFLAGS và/hoặc APP_CPPFLAGS, trong tệp "Android.mk"/"Application.mk". (Tôi đang sử dụng "APP_STL: = gnustl_static" trong "Application.mk" của tôi)

Cảm ơn mọi đề xuất.

Lawrence Tsang

+1

C++ 03 tiêu chuẩn đang tồn tại sine 2003 có lẽ bạn có nghĩa là tiêu chuẩn C++ 11. –

+0

@Als Theo bdonlan, tôi có nghĩa là tiêu chuẩn "C++ 0X". Tôi đã thay đổi câu hỏi của mình để phản ánh điều này. – user1129812

Trả lời

7

C++ 03 không phải là một tiêu chuẩn thử nghiệm; nó là mặc định.

C++ 0X, tuy nhiên, là một tiêu chuẩn thử nghiệm. Tên chính thức của nó bây giờ đã được thiết lập là C++ 11, nhưng việc thực hiện không đầy đủ trong GCC (và ở mọi nơi khác). Bạn có thể kích hoạt nó bằng cách đi qua --std=c++0x đến GCC. Hãy nhớ kiểm tra feature status page trước khi khiếu nại rằng có điều gì đó bị hỏng.

+1

'** Bạn có thể bật nó bằng cách chuyển --std = C++ 0x sang GCC **' Nhưng làm cách nào tôi có thể chuyển '** - std = C++ 0x **' vào trình biên dịch trong Android-ndk môi trường. Tôi đang sử dụng "ndk-build" và tôi đang mong muốn chỉ định các tùy chọn biên dịch thông qua các tệp "Android.mk"/"Application.mk". – user1129812

+3

Thêm "LOCAL_CPPFLAGS = -std = C++ 0x" vào "Android.mk" hoạt động. Cảm ơn. – user1129812