Mam wspólną bibliotekę napisaną w C++. Eksportuje widoczny interfejs utworzony z funkcji extern "C"
, które tworzą, niszczą i manipulują nieprzejrzystymi typami.Biblioteka współdzielona C++ od C
Teraz chciałbym mieć czysty program C, który korzysta z tej biblioteki.
Czy mogę to zrobić (platforma samodzielnie)? Kiedy środowisko wykonawcze C++ i obiekty statyczne C++ zostaną zainicjowane, jeśli main
nie jest napisane w C++?
Dodatek. (glibc :) init/fini jest dostarczane przez środowisko uruchomieniowe (crtS.o) i jest używane do inicjalizacji statycznych obiektów czasu trwania i wywoływania funkcji oznaczonych __attribute __ ((constructor)), więc przesłonięcie init/fini na własną rękę może prowadzić do problemów , w tym ratowanie z powodu podwójnej definicji symbolu. –
@ jørgensen: Czy to może być powód, dla którego są przestarzałe? – onitake