Linux Mint20下CodeBlocks运行Hello World程序报错(进程状态-1)
先确认你的代码本身没有语法问题:
#include <iostream> using namespace std; int main() { int a {}; a = 10; cout << "Hello world!" << a << endl; return 0; }
从你给出的错误信息来看:
-------------- Run: Debug in First (compiler: GNU GCC Compiler)---------------
Checking for existence: /home/oem/CPlus/First/bin/Debug/First
Set variable: LD_LIBRARY_PATH=.:
Executing: xterm -T First -e /usr/bin/cb_console_runner LD_LIBRARY_PATH=:. /home/oem/CPlus/First/bin/Debug/First (in /home/oem/CPlus/First/.)
Process terminated with status -1 (0 minute(s), 0 second(s))
这个问题的核心是CodeBlocks默认调用的xterm终端在你的系统中可能未安装,或者终端配置不兼容,导致程序无法正常启动终端输出结果。下面是两种可行的解决办法:
方案1:安装xterm终端
Linux Mint 20默认并没有预装xterm,CodeBlocks尝试调用它时直接失败,才会返回状态-1。你可以通过以下命令安装xterm:
sudo apt update && sudo apt install xterm
安装完成后,重启CodeBlocks再运行你的程序,应该就能正常看到"Hello world!10"的输出了。
方案2:修改CodeBlocks终端配置为系统默认终端
如果你不想额外安装xterm,可以把CodeBlocks的终端设置改成Linux Mint默认的终端(不同桌面环境对应不同终端,以下是常见情况):
- 打开CodeBlocks,点击顶部菜单栏的
Settings->Environment - 在左侧列表选择
General settings,找到右侧的Terminal to launch console programs选项 - 将原来的命令:
根据你的桌面环境替换成对应命令:xterm -T $TITLE -e- Cinnamon桌面:
gnome-terminal --title="$TITLE" --execute - MATE桌面:
mate-terminal --title="$TITLE" -x - XFCE桌面:
xfce4-terminal --title="$TITLE" -x
或者也可以用通用的终端调用命令,自动适配系统默认终端:
x-terminal-emulator -e - Cinnamon桌面:
- 点击
OK保存配置,重启CodeBlocks后再运行程序即可。
内容的提问来源于stack exchange,提问作者Zuo Zou

