gpt4 book ai didi

c++ - 相对于 cpp 的路径不是工作目录

转载 作者:行者123 更新时间:2023-11-30 01:44:52 30 4
gpt4 key购买 nike

我正在编写一些 C++ 代码,它主要为共享它的其他两个项目提供一个类,但也包括一个小程序,以便在需要时可以从命令行使用它。该类必须加载一些资源,这些资源被写入资源文件夹中的多个文件。这些文件的路径当然是硬编码到程序中的,因为除了调用 init 方法之外,我不希望任何使用该类的客户端不得不担心加载这些资源。当我自己编译项目时,使用硬编码的 fopen("resources/myresource.dat") 它按预期工作,但是当它包含在另一个项目中时,整个项目通常被放入一个单独的子目录,仅包含 header 作为 #include "subdir/myclass.h"。在这种情况下,硬编码路径无效,因为工作目录高出一个文件夹。

无论包含的路径如何,如何确保资源文件夹的路径始终有效?

最佳答案

How can I make sure the path to the resources folder is always valid, regardless of the path of the include?

它与包含路径无关。

您真正需要的是一个安装例程,它为您提供一个环境变量,如 $MYAPP_RESOURCE_PATH 并扩展它而不是您的硬编码路径 "resources/myresource.dat".

您可以使用 getenv() 检索环境变量的值功能。

关于c++ - 相对于 cpp 的路径不是工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394802/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com