【问题标题】:c++ executable runs from command line, but not from eclipsec++ 可执行文件从命令行运行,但不是从 eclipse
【发布时间】:2017-08-30 10:13:50
【问题描述】:

我正在尝试学习使用 SDL2 库的教程。我已经按照here 的指示逐字进行了。

程序编译正常,但是当我尝试在 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++ 构建环境,而不是运行环境;这显然是问题在于应用程序正在构建但未运行) .在下面发布答案。

【问题讨论】:

  • 环境(例如 PATH、LIBRARY_PATH 和/或其他)可能与您从终端运行时与从 IDE 运行时不同。确保从 IDE 运行时正确设置环境变量。
  • 非常感谢您的回复。我找到了一种将所有环境变量添加到我的 eclipse 项目的快速方法,这似乎并没有解决它,所以我不确定它是否与环境变量有关。 eclipse 会以某种方式使视频设备对 SDL2 不可用吗?

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


【解决方案1】:

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

为此,请右键单击您的项目,然后选择 Run As >> Run Configurations...

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2021-12-21
    • 1970-01-01
    • 2012-11-30
    • 2011-06-18
    相关资源
    最近更新 更多