我正在开发一个模块化项目,它是由静态库模块构建的。每个静态库都有一个xctest测试包。该项目还具有静态第三方依赖项(例如Swinject)
Mach-O键入测试目标的构建设置是" Bundle"。第三方框架被添加到"链接框架和库"在主目标上以及我们的静态库中的测试包中,框架搜索路径也在两者上都正确设置。
然而,当主目标上的构建成功时,当我尝试运行测试时,会导致以下编译器错误:
架构x86_64的未定义符号: " __ T08Swinject9ContainerCMa",引自: MyClassTests.o中的__T08Swinject9ContainerCSgMa ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
所以最终在我的理解中,第三方框架以与链接到主目标相同的方式链接到测试目标,但是在测试包上构建不起作用。我错过了什么吗?
答案 0 :(得分:0)
您的测试目标会自动链接到您的主要目标。但是,测试目标引用的任何其他框架和库必须明确链接。他们不是免费的。