什么导致Mac OS X上找不到合适的图像错误?

时间:2021-09-29 18:54:58

I followed Chris Hanson's advice about debugging framework unit tests in Xcode 3.1, but when trying to run the custom executable, the program crashes, stating the below error message [substituted $(BUILD_PRODUCTS_DIR) for the real location of the build products].

我遵循了Chris Hanson关于在Xcode 3.1中调试框架单元测试的建议,但是当试图运行自定义可执行文件时,程序崩溃,说明以下错误消息[替换$(BUILD_PRODUCTS_DIR)以获取构建产品的真实位置]。

2009-03-02 19:56:03.414 otest[28059:10b] Error loading
    $(BUILD_PRODUCTS_DIR)/Debug/Unit Tests.octest/
    Contents/MacOS/Unit Tests: dlopen($(BUILD_PRODUCTS_DIR_)/Unit
    Tests.octest/Contents/MacOS/Unit Tests, 265):
    no suitable image found. Did find:
    $(BUILD_PRODUCTS_DIR)/Unit Tests.octest/Contents/MacOS/Unit Tests:
    mach-o, but wrong architecture
2009-03-02 19:56:03.561 otest[28059:10b] The test bundle at
    $(BUILD_PRODUCTS_DIR)/Unit Tests.octest could not be loaded because
    it is built for a different architecture than the currently-running
    test rig (which is running as unknown).
2009-03-02 19:56:03.568 otest[28060:203] *** NSTask: Task create for path
    '$(BUILD_PRODUCTS_DIR)/Unit Tests.octest/Contents/MacOS/Unit Tests'
    failed: 8, "Exec format error". Terminating temporary process.

My question is, what leads to the no suitable image found. Did find: ... error message and how can I get the otest executable to run correctly so that I can debug my framework unit tests?

我的问题是,是什么导致找不到合适的图像。找到了:...错误信息,我怎样才能使otest可执行文件正确运行,以便我可以调试我的框架单元测试?

Is there an easier way to do this with out using otest?

使用otest有没有更简单的方法来做到这一点?

2 个解决方案

#1


otest is running just fine. The error is telling you that it can't load the test bundle, and that the reason why it can't load the test bundle is because it doesn't know what architecture it's running as.

otest运行得很好。该错误告诉您它无法加载测试包,并且它无法加载测试包的原因是因为它不知道它正在运行的体系结构。

The solution is to set ARCHPREFERENCE in otest's environment. You can do this in Xcode's custom executable editor. Set it to the architecture you want to run tests under.

解决方案是在otest的环境中设置ARCHPREFERENCE。您可以在Xcode的自定义可执行编辑器中执行此操作。将其设置为您要在其下运行测试的体系结构。

#2


The line Unit Tests.octest could not be loaded because it is built for a different architecture than the currently-running test rig would suggest that the dependencies were built for a different system - perhaps it's a PPC / Intel mismatch or the like?

Unit Tests.octest行无法加载,因为它是为不同的架构构建的,而不是当前运行的测试装置会建议依赖关系是为不同的系统构建的 - 可能是PPC / Intel不匹配等?

#1


otest is running just fine. The error is telling you that it can't load the test bundle, and that the reason why it can't load the test bundle is because it doesn't know what architecture it's running as.

otest运行得很好。该错误告诉您它无法加载测试包,并且它无法加载测试包的原因是因为它不知道它正在运行的体系结构。

The solution is to set ARCHPREFERENCE in otest's environment. You can do this in Xcode's custom executable editor. Set it to the architecture you want to run tests under.

解决方案是在otest的环境中设置ARCHPREFERENCE。您可以在Xcode的自定义可执行编辑器中执行此操作。将其设置为您要在其下运行测试的体系结构。

#2


The line Unit Tests.octest could not be loaded because it is built for a different architecture than the currently-running test rig would suggest that the dependencies were built for a different system - perhaps it's a PPC / Intel mismatch or the like?

Unit Tests.octest行无法加载,因为它是为不同的架构构建的,而不是当前运行的测试装置会建议依赖关系是为不同的系统构建的 - 可能是PPC / Intel不匹配等?