Tôi có một thư viện dùng chung được viết bằng C++. Nó xuất khẩu một giao diện có thể nhìn thấy được thực hiện bởi các hàm extern "C"
tạo ra, phá hủy và thao tác các loại mờ.Thư viện được chia sẻ C++ được gọi từ C
Bây giờ, tôi muốn có một chương trình C thuần túy sử dụng thư viện này.
Tôi có thể làm điều này (nền tảng độc lập) không? Khi nào thì thời gian chạy C++ và các đối tượng tĩnh C++ được khởi tạo nếu main
không được viết bằng C++?
Phụ lục. (glibc :) init/fini được cung cấp bởi môi trường thời gian chạy (crtS.o) và được sử dụng để khởi tạo các đối tượng thời gian tĩnh và các hàm gọi được đánh dấu __attribute __ ((constructor)), do đó ghi đè init/fini một mình có thể dẫn đến các vấn đề , bao gồm cả bailing ra do một định nghĩa biểu tượng đôi. –
@ jørgensen: Đó có phải là lý do tại sao chúng không được chấp nhận? – onitake