gpt4 book ai didi

c++ - _Unwind_resume的Mingw多重定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:33 24 4
gpt4 key购买 nike

我知道有人问过与此类似的问题,但我几个小时都无法解决这个问题。

基本上我有一个包含代码的 DLL 和一个调用它的应用程序。一切正常,但如果我将这两个带出我的开发环境,它会说程序无法启动,因为计算机中缺少 libgcc_s_dw2 1.dll

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

但是当我编译应用程序时出现错误:

"multiple definition of `_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

最佳答案

一个经常有效的 hacky 解决方法是将它添加到您的链接器标志中:

-Wl,-allow-multiple-definition

关于c++ - _Unwind_resume的Mingw多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com