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

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

问题描述:

我正在尝试使用SDL2库遵循教程。我已按照指示逐字逐句追踪hereC++可执行文件从命令行运行,但不是从eclipse运行

程序编译罚款,但是当我尝试月食我碰到下面的错误中运行它调用SDL_Init(SDL_INIT_VIDEO)时:

No available video device

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

继另一个教程后,我发现我的SDL2安装没有任何问题。实际上,当我从终端运行由eclipse项目创建的可执行文件时,它可以毫无问题地运行。

也有类似的问题(例如here),但我找不到一个在eclipse中发生错误,但不是终端。

任何指针将不胜感激。我怀疑这可能与未设置环境变量有关,但不确定是哪一个或为什么。根据SO的回答,我在项目设置中添加了DISPLAY环境变量并将其设置为:0,但没有运气。

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

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

+1

环境(例如,PATH,LIBRARY_PATH和/或其他)可能与从终端运行时和从IDE运行时不同。确保从IDE运行时正确设置环境变量。 –

+0

非常感谢您的回复。我发现了一种将所有环境变量添加到我的eclipse项目的快捷方式,而这似乎并没有解决它,所以我不确定这是否与环境变量有关。某种程度上可能会使视频设备无法使用SDL2? – kabdulla

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

做你这个项目用鼠标右键单击,然后选择Run As >>运行配置...

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

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