【问题标题】:Program cannot find image directory when run from IDE, but CAN when run from folder?程序从IDE运行时找不到图像目录,但从文件夹运行时可以吗?
【发布时间】:2014-09-19 15:22:30
【问题描述】:

当我构建时,它成功且没有错误。但是,当我从 IDE 运行时,出现错误(我的图像无法加载,因为它找不到目录)。

但是,如果我进入文件夹并运行程序(.exe),它会完美地找到图像目录。

mTextures.Load(Textures::Background, "../GFX/Background.png");

^给出目录的代码行。

我认为这是我在编译器中输入的设置有问题?

我在 Windows 上使用 Code::Blocks。

【问题讨论】:

    标签: c++ compiler-errors directory textures codeblocks


    【解决方案1】:

    您的调试器的当前目录(即您在代码块中执行应用程序时使用的当前目录)可能不正确。检查您的项目设置,并将当前目录修复为您的目标目录(包含可执行文件本身的目录)。

    具体说明为here

    【讨论】:

    • 感谢您理解我的问题并给我正确的答案。
    • 完美运行!再次感谢。
    【解决方案2】:

    这是因为您在文件名中使用了相对路径:

    "../GFX/Background.png"
    

    .. 表示“从当前目录上移一个目录”。如果您希望能够在任何地方运行您的程序,请使用 absolute 路径,例如:

    "/home/me/GFX/Background.png"
    

    【讨论】:

    • 我试过这个,但即使将 GFX 文件夹放入带有 ide 构建的 .exe 的文件夹中,也会遇到同样的问题。
    【解决方案3】:

    用双斜杠添加图像所在的完整路径。

    mTextures.Load(Textures::Background, "C:\\Program Files\\..\\..\\GFX\\Background.png");
    

    【讨论】:

    • 我确定这可行,但我想使用相对路径是有原因的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多