我正在处理一个由静态库模块构建的模块化项目。每个静态库都有一个xctest测试包。该项目还具有静态的第三方依赖项(例如Swinject)。
在测试目标的构建设置中,Mach-O类型为“Bundle”。第三方框架被添加到主目标和我们的静态库中的测试包的“链接框架和库”中,并且在两者上也正确设置了框架搜索路径。
然而,虽然主目标的构建成功了,但是当我尝试运行测试时,会出现以下编译器错误:
未定义符号,适用于架构x86_64: “__T08Swinject9ContainerCMa”,来自: __T08Swinject9ContainerCSgMa in MyClassTests.o ld:找不到符号(s)适用于架构x86_64 clang:错误:链接器命令失败,退出代码1(使用-v查看调用)
因此,根据我的理解,第三方框架与主目标相同地链接到测试目标,但测试包的构建却无法正常工作。我是否遗漏了什么?
在测试目标的构建设置中,Mach-O类型为“Bundle”。第三方框架被添加到主目标和我们的静态库中的测试包的“链接框架和库”中,并且在两者上也正确设置了框架搜索路径。
然而,虽然主目标的构建成功了,但是当我尝试运行测试时,会出现以下编译器错误:
未定义符号,适用于架构x86_64: “__T08Swinject9ContainerCMa”,来自: __T08Swinject9ContainerCSgMa in MyClassTests.o ld:找不到符号(s)适用于架构x86_64 clang:错误:链接器命令失败,退出代码1(使用-v查看调用)
因此,根据我的理解,第三方框架与主目标相同地链接到测试目标,但测试包的构建却无法正常工作。我是否遗漏了什么?