【发布时间】:2016-02-28 15:53:34
【问题描述】:
我有一个运行内存消耗算法的 c++ 应用程序。
它因错误而崩溃:在分配的内存达到大约 2GB 后抛出一个 'std::bad_alloc' 实例后调用终止。
我想将它编译为 64Bit,以便它可以从我的 64Bit/8GB Ram 机器上分配更多内存。
如何实现?
我正在使用 CLion,使用 CMake 构建并使用 mingw 版本:
mingw-w64\i686-4.8.3-posix-dwarf-rt_v3-rev2
顺便说一句-wingw 安装在C:\Program Files (x86)\mingw-w64 下,这与问题有关吗?
我一直在看这里:
Detecting 64bit compile in C
并且(并不奇怪)我可以看到我的应用程序没有__x86_64__
【问题讨论】:
-
-m64 不可以吗?
-
嗯,我不知道我应该把它放在哪里?
-
作为编译器调用字符串的参数。 CMake 定义中的某处。
-
大约一个小时后检查并告诉你
-
如果您可以在某些 POSIX 系统上编译和运行您的应用程序,请尝试使用valgrind。你可能有一些memory leak。如果可能的话,用GCC 5编译它并在调试阶段使用一些
-fsanitize=选项(除了-Wall -Wextra -g)
标签: c++ c++11 cmake mingw-w64 clion