2013-02-01 33 views
7

Tôi đang cố hiểu các cờ D_GLIBCXX_DEBUG và DNDEBUG.Tôi có thể tìm thêm thông tin về cờ D_GLIBCXX_DEBUG và DNDEBUG ở đâu?

Nhưng tôi không thể tìm thấy thông tin về chúng.

Có ai có thể giải thích những gì họ làm không? và tôi có thể đọc thêm về chúng ở đâu?

+0

Thực tế là '_GLIBCXX_DEBUG' và' NDEBUG' không có 'D'. – ipc

+0

các macro này là gì? –

+2

Tôi đã cung cấp cho bạn tên thật, giờ đây chúng có thể dễ dàng tìm kiếm trên web. – ipc

Trả lời

5

Cả hai sử dụng -D xác định macro được cung cấp sau D.

Khi NDEBUG được xác định, assert không kiểm tra đối số của nó.

Khi _GLIBCXX_DEBUG được xác định, nó kích hoạt debug mode trong libstdc++ (gây libstdc++ để thực hiện kiểm tra trên các hoạt động khác nhau).

+0

Vì vậy, bạn viết '-DNDEBUG' và' -D_GLIBCXX_DEBUG' khi tạo trình biên dịch thông qua dòng lệnh, phải không? – shuhalo

+0

@shuhalo: Có, nếu bạn muốn macro 'NDEBUG' và' _GLIBCXX_DEBUG' được xác định trong khi biên dịch. – Mankarse

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