将第三方静态库链接到静态库的测试目标,结果出现未定义符号错误

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

0

你的测试目标会自动链接到主目标。但是,测试目标引用的任何其他框架和库都必须显式链接。它们不会免费提供。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接