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

时间:2017-04-05 01:29:10

标签: c++ eclipse ubuntu sdl sdl-2

我正在尝试使用SDL2库来学习教程。我已按照here逐字说明的说明进行操作。

程序编译得很好,但是当我尝试在eclipse中运行它时,我在调用.parent { height:98px; display:block; } .nav { font-family: "proxima-nova", sans-serif; display: block; float: right; color:#FFB8B8; padding-right: 20px; padding-top: 40px; padding-bottom: 40px; text-decoration: none; background: black; } .img{ background:yellow; position: relative; display: block; margin: auto; padding-top: 50px; padding-bottom: 50px; }时遇到以下错误:

<div class="parent"> <div class="nav"> nav </div> </div> <div class="img"> image </div>

经过一番研究后,我认为这是因为SDL2没有正确链接到任何显示驱动程序,所以浪费了几个小时从源代码安装它,并尝试在各种论坛上提出各种修复。

在完成另一个教程之后,我发现我的SDL2安装没有任何问题。事实上,当我从终端运行eclipse项目创建的可执行文件时,它运行没有任何问题。

有类似的问题(例如here),但我无法在eclipse中找到错误发生的地方,而不是终端。

任何指针都将非常感激。我怀疑它可能与未设置的环境变量有关,但不确定是哪个或为什么。基于SO的答案,我添加了SDL_Init(SDL_INIT_VIDEO)环境变量,并在项目设置中将其设置为No available video device,但没有运气。

更新:我找到了一种方法来快速将所有bash环境变量添加到我的eclipse项目中,但仍然出现DISPLAY错误。

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

1 个答案:

答案 0 :(得分:1)

事实证明这是一个环境变量问题。要解决此问题,您需要将环境变量DISPLAY添加到项目中并将其设置为:0.0

要执行此操作,请右键单击您的项目,然后选择Run As&gt;&gt;运行配置...

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

单击“应用”,然后单击“运行”,它应该可以工作。感谢@Anon Mail将我指向环境变量的方向。