c – Qt Creator – calloc因大内存而失败
我有Qt Creator或其中一个组件的问题.
我有一个需要大量内存(大约4 GB)的程序,我使用calloc来分配它.如果我使用mingw / gcc编译C代码(不使用Qt框架)它可以工作,但如果我在Qt Creator中编译它(使用C嵌入Qt框架中的C代码),使用mingw / gcc工具链,calloc返回一个空指针. 我已经搜索并发现qt-pro选项QMAKE_LFLAGS = -Wl,– 大地址感知,适用于某些情况(约3.5GBytes),但如果我超过4GBytes,它只适用于编译的C代码gcc,而不是Qt. 在使用Qt Creator进行编译时,如何使用calloc分配所需的内存量? 解决方法
因此,您的cigwin工具链为您的应用程序构建了64位应用程序.可由64位应用程序分配的可能内存大小为264字节,远远超过4Gb.但是Qt Creator(如果你是从QtSDK安装而不是手动重新配置的话)使用Qt的工具链来构建32位应用程序.理论上你可以通过32位应用程序分配4Gb内存,但不要忘记,所有库也将被加载到这个内存中.在实践中,您可以分配大约3 Gb的内存而不是一个连续的块.
您有3种方法可以解决您的问题: >重新考虑你的算法.不要分配4Gb的RAM,使用更智能的数据结构,或使用磁盘缓存等.我相信如果你的问题实际上需要超过4 GB的内存来解决,你不会问这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |