iOS环境中的c ++工作目录位置

时间:2019-02-07 19:34:24

标签: c++ ios

我在站点上看到了这个问题的几种变体,但是XCode 10中似乎没有一个可接受的答案。(而且我不是100%地确定它们甚至与我所遇到的问题相同。)

我有一个要移植到iOS的应用程序。它访问捆绑的数据。现在,在普通的iOS应用中,我知道如何访问资源,这不是问题。但是,该应用程序是C ++,默认情况下是这样的:

  1. 将其基本目录设置为当前工作目录(也称为“”)
  2. 将其基本数据目录设置为...同一目录(也称为“ ./”)
  3. 将其特定的映射目录设置为数据目录+“ mappings /”

现在这一切都很好,并且在构建过程的最后一步,我将映射目录复制到我的包中,并且它及其所需的所有文件都在这里。

问题是,当我实际在模拟器中运行时,似乎出现了步骤1,而不是将基本目录设置为捆绑软件的基础或捆绑软件基础中的某些工作目录,而是将工作目录设置为...“ /”

这到底有多合理?我的意思是,我猜想它是通过以完整路径运行命令来执行的,但是我无法轻易想象一个工作目录“ /”将永远是任何人想要甚至期望的东西。

现在,我可以在代码中添加一个ifdef,以将工作目录设置为“ argv [0]减去文件名”。但是,我真的不想那样使用可笑的技巧。假设以前有一些设置可以在启动时将CWD设置为模拟器中捆绑软件的基础。但是在XCode 10中,我在任何地方都找不到该选项。所以我的问题是两个:

  1. 有人知道我如何/可以做到吗?
  2. 当我将其实际放置在真实设备上时,它会自动将我的工作目录放置在合理的位置吗?否则,是否受到上述相同设置的影响?还是只是将CWD置于“ /”然后由于我不在沙箱中而崩溃?

0 个答案:

没有答案