Clion windows 秒退 段错误 无输出
-
问题复现:cmake在linux上正常运行,把C++项目搬到windows下的Clion IDE里,配置好后,正常构建、编译,得到.exe。但一运行或者调试运行,都是闪退了,显示段错误。
-
一个不错的笨方法:把代码注释了,逐段解注释,看可以运行到哪一段就运行不下去了。
-
第一个坑:main里读了一个文本文件,但.exe可执行文件和打开的文本文件不是在同一级目录,文件路径里加
"../"就好了。 -
第二个坑:main里有声明一个类,类里有诸如 int a[500][500]这样的大数组,导致申请的内存超过了上限,CMakeLists.txt 里加一行
“set_target_properties(可执行文件名 PROPERTIES LINK_FLAGS -Wl,--stack,10000000)”就好了。这里参考了这里。 -
问题1:类的声明是在main的几十行的位置,但在main函数的第一行写cout<<“xxx”;,然后运行、调试运行都是直接报段错误,没有输出xxx,难道先执行了后面的类构造函数?还是说类里的私有成员——写死了大小的数组会提前分配好内存再执行cout? 所以内存没分配好就提前报错了没执行cout打印了。
-
问题2:类里不是通过new、malloc动态分配的内存,所以类里的数组是在栈上的?尽管很大。所以
CMakeLists.txt里只扩大了stack就可以运行了? -
配置环境参考了官方文档,把编译器等等都通通改成了
Bundled即IDE自带的。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
