Mingw _Unwind_resume的多重定义

Dav*_*son 6 c++ mingw codeblocks

我知道有一个类似的问题已经被问过了,但我几个小时都无法解决这个问题.

基本上我有一个带代码的DLL和一个调用它的应用程序.一切都运行正常,但如果我把两个在我的开发环境之外,它说程序无法启动因为libgcc_s_dw2 1.dll计算机丢失了.

考虑到它不是一台开发计算机,这是公平的.因此,为了分发,我添加了编译器标志" -static-libgcc -static-libstdc++".我为dll和应用程序做了这个.

但是当我编译应用程序时,我收到错误:

"`_Unwind_Resume'的多重定义"

我认为这是由于dll和应用程序都内置了静态库,而且它是.但如果它们都没有内置静态库,程序将无法在最终用户计算机上运行.

如何在仍然没有依赖于mingw库的情况下删除此错误?我的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
Run Code Online (Sandbox Code Playgroud)

oll*_*llo 1

请仅使用链接器标志重复-static。但是(如果可能)将其包含libgcc_s_dw2 1.dll到您的 exe 中并分发两者。您可以从文件夹中获取 dll MinGW/bin

还要确保您没有添加-static-libgcc到编译器,而是添加了链接器标志!