Acg N. .
Temat: Rozwiązanie dla SIGSEGV przy dlopen pod Mono (2-10.8)
Co prawda grupa dotyczy MS .NET, ale pewnie niejedna osoba dłubie coś pod Mono, więc może się przyda.Przy okazji pisania większego projektu zaszła potrzeba załadowania pewnej biblioteki. Jakież było moje zdziwienie, gdy dostałem na dzień dobry po głowie SIGSEGVem... Początkowo myślałem, że problem wywołuje biblioteka, którą próbuję załadować. Ustawiałem wszystkie zmienne środowiskowe, z których potencjalnie mogła korzystać, uaktualniłem ldconfiga, przekompilowałem bibliotekę - nadal to samo.
Po chwili googlania okazało się, że nie jest to problem biblioteki, tylko Mono i dotyczy wielu różnych wersji. Jedni mają z tym problem, inni nie.
Tutaj, dla ilustracji, uproszczony przykład - ładowanie standardowej biblioteki C:
Wreszcie znalazłem rozwiązanie tego problemu. W skrócie - trzeba sobie napisać w C prostego wrappera do libdl.so i to do jego funkcji się odwoływać.
Nie wiem, podobnie jak autor, dlaczego to działa, ale działa:
Adrian Olszewski edytował(a) ten post dnia 05.11.12 o godzinie 01:56