LINUX(ubuntu)上的cpp(c++)程序运行出现退出代码-1(有关std)(IDE选择的是VScode)

问题描述

        笔者在对linux高性能服务器的学习中,在对网上代码以及游双所著书本中的代码进行运行的时候,又出现终端返回退出代码为-1,而并不回报任何错误,代码无法成功编译成可运行文件,一开始也不清楚哪里发生了什么问题,在进行代码的进一步编程的时候,在分批注释代码运行的过程中,发现主要是std::会引发这种情况。

问题复现

        笔者出现的这个问题其实很简单解决,但是笔者后来在网上没找到相关的内容,在寻找问题和解决问题的过程中耗费了大量的时间,所以发个贴补充一下这部分的内容,本人萌新,希望大佬们多多指点。

#include <iostream>
int main()
{   
   printf("what can i say \n");
   std::cout << "Hello World!" << std::endl;
   return 0;
}

        其实就是一开始的调试环境选择错误了,选用了gcc,这是用于编译c语言的,而c语言与c++语言,因为c中并没有定义string类型,故在调用的时候会出现问题,因为一开始的对库的调用中不涉及这部分变量类型的使用,程序莫名奇妙的能动,而在一开始编译后vscode就在你的工作文件夹内放置了tasks.json来记录编译环境方便下次直接编译,这就是在后来在使用到相关std的操作时报出退出代码为-1,而很难发现问题出在那,因为一开始它是可运行的。

        想要解决,也很简单,就是把vscode里文件夹中的json文件删除再运行,如果没有就点一下运行三角形旁边齿轮,更换环境(此时左边文件夹侧边栏也会出现json文件),不行在删除json文件再运行。

总结

        首先,这其实是一个比较马大哈,甚至是很简单的问题,网上也找不到相关的内容,想起来大概是没什么和笔者一样铸币吧,这也表现出来我一开始的代码很靠近c语言,这才能让编译器浑水摸鱼这么久,到后面进行http解析的时候,涉及到string和指针地狱的时候,本人也是很烦躁,特别是怎么写都是退出代码-1,特别是一开始有bug跑不了,搞倒最后回一个退出代码-1,直接心态爆炸。

        收获也是蛮多的,其实笔者也做了很多其他尝试,更新gcc和g++甚至重新安装ubuntun和vm虚拟机,很好笑的是vscode第一个选项就是gcc次次中招,次次都是退出代码-1,在后来直接尝试使用终端使用命令编译,神奇的是居然成功了,就开始从IDE的方向思考,又重新下了一个atom(以前在linux用这个跑python的深度学习的编译器)尝试跑cpp,确定是vscode的问题(猜测是环境配置问题),为了以后更好的使用这个软件,去网上看了相关的环境问题,最后确定是环境设置问题。给我的感触其实就是要反推,和将整体划分成一个又一个的模块,在后面看他人项目的时候,这种感触就特别深,进行项目功能复现的时候也是如此。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值