在dll中使用mingw32下的gc时的任何特殊注意事项

问题描述 投票:0回答:1

我在mingw32项目中使用gc,我遇到了以下问题:当程序静态链接时,没有问题,程序运行正常。但是,在将某些组件移动到dll之后,程序崩溃了。有什么建议?此致,bostjanv

mingw boehm-gc
1个回答
0
投票

boehm-gc需要知道要扫描的数据根,每个.dll都有自己的数据部分,因此它应该以某种方式注册。通常它应该自动注册(包括mingw32,内部GC_register_dynamic_libraries函数负责.dlls中的根发现和注册)。要查看已注册的数据根,请在加载.dll后插入GC_gcollect()和GC_print_static_roots()调用。如果您在Windows 10主机上运行boehm-gc,请确保您的libgc-1.dll具有patch,它修复了使用PAGE_WRITECOPY标志处理.dll段的问题。

© www.soinside.com 2019 - 2024. All rights reserved.