Wiem, podobne pytanie do tego zostało już zadane, ale nie byłem w stanie rozwiązać ten problem godzinami.Mingw wielu definicji _Unwind_resume
Zasadniczo mam DLL z kodem i aplikacji, która go wzywa. Wszystko działa dobrze, ale jeśli wyjmę oba poza środowisko mojego rozwoju, oznacza to, że program nie może się uruchomić, ponieważ na komputerze brakuje libgcc_s_dw2 1.dll
.
Jest to wystarczająco fair, biorąc pod uwagę, że nie jest to komputer programistyczny. Więc dla dystrybucji dodałem flagi kompilatora "-static-libgcc -static-libstdc++
". Zrobiłem to dla biblioteki dll i dla aplikacji.
Ale kiedy mogę skompilować aplikację pojawia się błąd:
"multiple definition of `_Unwind_Resume'"
myślałem, że to było spowodowane zarówno dll i aplikacji mającej statycznych bibliotek wbudowanych w nich, i to jest. Ale jeśli oba nie mają wbudowanych bibliotek statycznych, program nie będzie działał na komputerach użytkowników końcowych.
Jak mogę usunąć ten błąd, gdy nadal nie mam zależności od bibliotek mingw? Moje IDE to Code :: Blocks.
David
EDIT: oto log kompilacji podczas budowania aplikacji, która łączy się ze dll:
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/libgcc_eh.a(unwind-dw2.o):(.text+0x298c): multiple definition of `_Unwind_Resume'
..\EquilibriumEngine\bin\Release\libEquilibriumEngine.dll.a(d000015.o):(.text+0x0): first defined here
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 0 warnings
można dodać cokolwiek dziennika Code :: Blocks ma do kompilacji (coś który zawiera polecenia używane do kompilacji/link wzdłuż z ewentualnymi ostrzeżeniami i błędami)? –
Być może ta odpowiedź http://stackoverflow.com/questions/8765215/multiple-definitions-of-unwind-resume zawiera wskazówki, co jest nie tak. – Arnestig