Swift测试链接器错误

时间:2015-08-14 13:57:35

标签: swift compilation linker linker-errors

我有一个Swift测试,它使用了我写的一些Objective-C代码:

class ParserServiceTest: QuickSpec {
    override func spec() {
        var x : MyClass? // this works
        x = MyClass()    // this does not
    }
}

当我尝试构建项目时,我收到错误消息:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_MyClass", referenced from:
      __TTSf4d___TTSf4g___TFC11MyProjectTests17ParserServiceTest4specfS0_FT_T_ in ParserServiceTest.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 个答案:

答案 0 :(得分:1)

您需要在测试目标中包含objective-c。在目标列表中,选择" ...测试"目标,然后是"构建阶段"窗格。看看"编译源"或者"链接二进制文件库和#34; (取决于您的代码是来自源代码还是库),并确保您需要的所有文件都在那里。您需要为可执行项目执行大多数操作,还需要为测试项目执行此操作。

在“文件检查器实用程序”面板(右侧面板)中,您还可以将目标成员身份添加到单个文件中。