我想知道是否有人在使用与visual studio 2010项目链接的预编译的mingw fftw二进制文件时从未遇到过内存崩溃问题。奇怪的是,仅仅是fftw libs链接(由lib /def:libfftw3-3.def生成,由fftw文档解释)就会给我的项目带来麻烦,即使没有任何fftw API被调用。好吧,我将尝试按照作者的建议在VS2010中从头开始编译fftw,但我很好奇的是,仅仅链接库就会产生副作用。据我所知,这似乎不是我们c++代码的问题……
一些环境。详细信息: vs 2010中的win 32位非托管c++项目
谢谢!
发布于 2011-05-18 04:10:15
我不知道fftw库是什么,所以我不确定它可能具体做了什么导致不稳定。DLL有可能在加载时执行代码,因此您没有主动调用它并不一定意味着它什么都不做。
然而,MinGW链接到随Windows系统分发的msvcrt.dll运行时,而使用VS2010中的DLL运行时的普通构建将链接到MSVCRT100.DLL。混合运行时DLL是一个可能导致神秘问题的领域,特别是如果分配是从一个运行时进行的,并在另一个运行时释放(甚至在另一个运行时使用,我相信如果涉及调试运行时)。
你最好的选择可能是尝试用VS2010重新编译fftw库(我假设源代码是可用的-希望用MSVC重新编译不会太困难)。
说服VS2010使用msvcrt.dll运行时是可能的(微软就是这么做的),但细节并不明显,我的笔记在其他地方。
发布于 2011-05-18 04:09:19
fftw确实做了一些繁重的代码生成/分析/CPU目标确定;
显然,他们在第一次运行时就这样做了。所以可能会有
中获益
对不起,我记不住细节(位置)
https://stackoverflow.com/questions/6036347
复制相似问题