Я знаю, что подобный вопрос уже задавался, но я не мог решить эту проблему в течение нескольких часов.
По сути, у меня есть DLL с кодом и приложение, которое ее вызывает. Все работает нормально, но если я возьму эти два за пределы моей среды разработки, он скажет, что программа не может запуститься, потому что libgcc_s_dw2 1.dll
отсутствует на компьютере.
Это достаточно справедливо, учитывая, что это не компьютер для разработки. Так что для дистрибутива я добавил флаги компилятора "-static-libgcc -static-libstdc++
". Я сделал это для dll и для приложения.
Но когда я компилирую приложение, я получаю ошибку:
"multiple definition of `_Unwind_Resume'"
Я думал, что это произошло из-за того, что в dll и в приложение встроены статические библиотеки, и это так. Но если они оба не имеют встроенных статических библиотек, программа не будет работать на машинах конечных пользователей.
Как я могу удалить эту ошибку, не имея зависимостей от mingw libs? Моя IDE — это Code ::Blocks.
Давид
РЕДАКТИРОВАТЬ:вот журнал сборки при сборке приложения, которое ссылается на 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