c ++可执行文件从命令行运行,但不能从eclipse运行

我正在尝试使用SDL2库进行教程。 我按照这里的指示逐字。

该程序编译好,但是当我尝试在eclipse中运行时,调用SDL_Init(SDL_INIT_VIDEO)时出现以下错误:

No available video device

经过一番调查,我决定这是因为SDL2没有正确连接到任何显示驱动程序,浪费了几个小时从源代码安装它,并尝试各种论坛上build议的各种修复。

在下一个教程之后,我发现我的SDL2安装没有任何问题。 实际上,当我从terminal运行由eclipse项目创build的可执行文件时,它运行时没有任何问题。

也有类似的问题(例如这里 ),但是我找不到从eclipse中发生错误的地方,而不是terminal。

任何指针将不胜感激。 我怀疑这可能是与一个环境variables没有被设置,但不知道是什么或为什么。 基于SO的答案,我添加了DISPLAY环境variables,并在项目设置中将其设置为:0 ,但没有运气。

更新:我发现了一种方法来快速添加我所有的bash环境variables到我的eclipse项目,我仍然得到No available video device错误。

更新2:原来我没有在正确的位置添加环境variables(我将它们添加到C ++构build环境中,而不是运行环境;这显然是问题在于应用程序正在构build但未运行的位置)。 在下面发布答案。

原来这是一个环境变量的问题。 要解决您需要将环境变量DISPLAY添加到您的项目,并将其设置为:0.0

为此,请右键单击您的项目,然后选择运行方式>>运行配置…

然后在左侧面板中选择您的应用程序。 选择右侧的环境选项卡。 单击新建…,然后在名称:字段中输入DISPLAY ,在值:字段中输入:0.0

点击应用,然后运行,它应该工作。 感谢@Anon Mail指向环境变量的方向。