我有一个运行内存消耗算法的c++应用程序。
它因错误而崩溃:在分配的内存达到大约2GB后,在抛出'std::bad_alloc'的实例后终止调用。
我希望将它编译为64位,这样它就可以从我的64位/8GB Ram机器中分配更多的内存。
怎么做呢?
我和CLion一起工作,用CMake构建,并使用mingw版本:顺便说一句-翼安装在C:\Program Files (x86)\mingw-w64下,这与问题有关吗?
我一直在这里寻找:Detecting 64bit compile in C和(不是很惊讶)我可以看到我的应用程序没有__x86_64__
发布于 2015-12-03 00:54:15
正如OP建议的那样,将我的评论作为回答:为此,您需要将-m64选项传递给编译器/链接器。
发布于 2015-11-25 18:23:52
您必须告诉CLion使用MinGW-w64构建您的CMake项目。
您不必更改您的CMake项目配置。如果您可以轻松地告诉编译器要构建或使用适当的编译器(MinGW-w64),那么用固定的机器架构限制您的MinGW-w64项目将适得其反。
这篇文章向你展示了如何做到这一点:
https://dev.my-gate.net/2014/09/15/how-to-use-mingw-w64-with-clion/
摘自这篇文章:
下面是几个让它发挥作用的步骤:

构建可执行文件之后,可以使用unix命令file检查其体系结构,因为您使用的是mingw,所以它应该对您可用。
https://stackoverflow.com/questions/33923609
复制相似问题