日食 "TERM environment variable not set"
eclipse "TERM environment variable not set"
我已经在 Linux(Ubuntu MATE) 上用 Eclipse 构建了一个 C 程序。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 100,d1,d2,d3;
system("clear");
while(num <= 500)
{
d1 = num % 10;
d2 = (num % 100) / 10;
d3 = num /100;
if(num == (d3*d3*d3) + (d1*d1*d1) + (d2*d2*d2))
printf("%d \n", num);
num = num + 1;
}
return 0;
}
我构建它时没有收到任何错误,但是当我通过按 运行 按钮执行它时,它说
"Error exist in required project.Continue launch?"
然后我按下是按钮,它在 Eclipse 控制台中给出以下输出:
153
370
371
407
TERM environment variable not set.
但是当我在真实终端中执行该程序时,它 运行 没问题,并给出以下信息:
这里是文本输出:-
153
370
371
407
但是这里没有显示行"TERM environment variable not set."。它只发生在 eclipse 终端。为什么会这样?
我还可以使用 real mate 终端而不是 eclipse 控制台吗?
输出可能来自clear
。为了向终端发送正确的序列以清除屏幕,它需要知道终端类型并为其使用 TERM
环境变量。在 Eclipse 中,您没有真正的终端,也没有设置 TERM
变量。
也就是说,不要从您自己的程序中执行 clear
。它 fork 一个没有收益的进程,不可移植到非 *nix 平台,打破了普通工具只会写入输出而不删除任何东西的假设,并且如您所见,取决于环境。
如果您确实需要像屏幕一样控制终端,请查看 curses
library。
我已经在 Linux(Ubuntu MATE) 上用 Eclipse 构建了一个 C 程序。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 100,d1,d2,d3;
system("clear");
while(num <= 500)
{
d1 = num % 10;
d2 = (num % 100) / 10;
d3 = num /100;
if(num == (d3*d3*d3) + (d1*d1*d1) + (d2*d2*d2))
printf("%d \n", num);
num = num + 1;
}
return 0;
}
我构建它时没有收到任何错误,但是当我通过按 运行 按钮执行它时,它说
"Error exist in required project.Continue launch?"
然后我按下是按钮,它在 Eclipse 控制台中给出以下输出:
153
370
371
407
TERM environment variable not set.
但是当我在真实终端中执行该程序时,它 运行 没问题,并给出以下信息:
这里是文本输出:-
153
370
371
407
但是这里没有显示行"TERM environment variable not set."。它只发生在 eclipse 终端。为什么会这样?
我还可以使用 real mate 终端而不是 eclipse 控制台吗?
输出可能来自clear
。为了向终端发送正确的序列以清除屏幕,它需要知道终端类型并为其使用 TERM
环境变量。在 Eclipse 中,您没有真正的终端,也没有设置 TERM
变量。
也就是说,不要从您自己的程序中执行 clear
。它 fork 一个没有收益的进程,不可移植到非 *nix 平台,打破了普通工具只会写入输出而不删除任何东西的假设,并且如您所见,取决于环境。
如果您确实需要像屏幕一样控制终端,请查看 curses
library。