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自带的。
    在这里插入图片描述
    在这里插入图片描述


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部