4

试图让 openframeworks 构建我的应用程序,以便我可以从任何地方打开它,它将从应用程序资源文件夹中加载所需的图像。

我相信这是相对链接?

我以前在旧的 xcode 和 oF 61 上做过。

为此,我将所需的图像拖到左侧的项目文件中,并将其添加到可执行目标中,并在“构建阶段”->“复制文件”中。

一直在尝试各种方法,上次解决问题的 ofSetDataPathRoot() 这次对我不起作用。

任何想法/帮助将不胜感激!

谢谢

4

3 回答 3

9

首先,您需要通过添加构建阶段告诉 xCode 将您的 /bin/data 目录复制到您的应用程序包中:

1. Click on your project in the Project Navigator
2. Select "Build Phases"
3. Toggle open the "Run Script" section and paste in the following:
cp -r bin/data "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources";

然后告诉您的应用程序在哪里可以找到捆绑包中相对于自身的数据文件夹。

在您的 oF 应用程序的设置方法中:

ofSetDataPathRoot("../Resources/data/");
于 2013-06-18T00:58:26.580 回答
0

ofSetDataPathRoot() 应该解决这个问题。也许您错误地设置了替换根路径?

尝试在字符串路径上自己调用 ofToDataPath() 并打印出结果,然后使用终端并cd在 .app 包中检查路径是否正确。路径是相对于 .app 包中实际可执行文件的位置表示的,因此如果可执行文件位于myApp.app/Contents/MacOS/myApp且数据文件位于则应返回类似myApp.app/Contents/Resources.app的内容。ofToDataPath( "texture.png" )../Resources/texture.png

myApp.app/Contents/MacOS您可以通过调用来仔细检查当前工作目录(在我的示例中) getcwd(),打开终端并键入man getcwd以获取更多信息。

于 2011-06-11T10:40:02.757 回答
0

oF 现在默认设置数据路径根执行内部调用ofToDataPath()。你用的是什么版本?

您是否查看了产品的包内容以确保您的资源在正确的构建阶段获得副本?

于 2011-09-10T21:37:55.163 回答