Tôi phát triển một số thư viện gốc cho Android và sử dụng thư viện Tăng cường - chỉ các thư viện dựa trên tiêu đề. Vấn đề tôi phải đối mặt là khi tôi cố gắng liên kết một số thư viện bản địa của tôi với một số thư viện hệ thống, UnsatisfiedLinkError
bị ném. Đó là do các giai đoạn C++ khác nhau như đã nêu trong tài liệu NDK:Có thể vô hiệu hóa ngoại lệ và RTTI trong thư viện Boost không?
Bạn chỉ có thể chọn một thời gian chạy C++ duy nhất mà tất cả mã của bạn sẽ phụ thuộc vào. Không thể kết hợp các thư viện được chia sẻ được biên dịch với thời gian chạy C++ khác nhau.
Thư viện hệ thống không sử dụng RTTI và ngoại lệ, nhưng thư viện của tôi sử dụng nó hoàn toàn. Tôi biết có các macro BOOST_EXCEPTION_DISABLE
và BOOST_NO_RTTI
, nhưng tôi không thể làm cho nó hoạt động. Tôi cố gắng để thiết lập chúng như cờ biên dịch và trong config.hpp là tốt, nhưng không có may mắn - vẫn nhận được nhiều lỗi như
cannot use typeid with -fno-rtti
Làm thế nào tôi có thể vô hiệu hóa các tính năng trong Boost, là nó thậm chí có thể?
Bạn có gặp phải lỗi đó khi cố gắng biên dịch Boost không? Hoặc khi cố gắng biên dịch mã của riêng bạn? –
Khi cố gắng biên dịch mã của riêng tôi. – vitakot
BTW, câu hỏi của bạn không có ý nghĩa; Tôi đã viết tôi chỉ sử dụng tiêu đề ..., chủ yếu là circular_buffer.hpp, signal.hpp và shared_ptr.hpp – vitakot