gpt4 book ai didi

c++ - fftw mingw 预编译二进制文件和 vs 2010 的内存损坏?

转载 作者:行者123 更新时间:2023-11-28 08:20:18 26 4
gpt4 key购买 nike

我想知道是否有人在使用与 visual studio 2010 项目链接的预编译 mingw fftw 二进制文件时从未遇到过内存损坏问题。奇怪的是,即使没有调用任何 fftw API,仅 fftw 库链接(由 lib/def:libfftw3-3.def 生成,如 fftw 文档所述)给我的项目带来了麻烦。好吧,我会按照作者的建议尝试在 vs 2010 中从头开始编译 fftw,但我很好奇仅链接库会导致副作用这一事实。据我所知,这似乎不是我们的 C++ 代码的问题...

一些环境。详细信息:在 vs 2010 中赢得 32 位、非托管 c++ 项目

谢谢!

最佳答案

我不知道 fftw 库是什么,所以我不确定它可能具体做了什么导致不稳定。 DLL 有可能在加载时执行代码,因此您没有主动调用它并不一定意味着它没有做任何事情。

但是,MinGW 链接到随 Windows 系统分发的 msvcrt.dll 运行时,而在 VS 2010 中使用 DLL 运行时的正常构建将链接到 MSVCRT100.DLL。混合运行时 DLL 是一个可能导致神秘问题的领域,特别是如果从一个运行时进行分配并在另一个运行时释放(或者甚至在另一个运行时使用,我相信如果涉及调试运行时)。

你最好的选择可能是尝试用 VS 2010 重新编译 fftw 库(我假设源是可用的 - 希望用 MSVC 重建不会太难)。

可以说服 VS 2010 使用 msvcrt.dll 运行时(Microsoft 这样做),但细节并不明显,我的笔记在别处。

关于c++ - fftw mingw 预编译二进制文件和 vs 2010 的内存损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036347/

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