我试图在我的Swift项目中包含第三方静态库。我有这两个文件,其中包括其他文件。
GoogleConversionTrackingSDK / ACTReporter.h GoogleConversionTrackingSDK / libGoogleConversionTracking.a
我将.a
文件添加到了目标"链接的框架和图书馆"部分。然后我在我的项目中创建了一个module.map
文件,如下所示:
module GoogleConversionTracking {
header "../../Libs/GoogleConversionTrackingSDK/ACTReporter.h"
export *
}
在Swift文件中,我现在可以参考它:
import GoogleConversionTracking
但是我在链接时遇到错误:
ld:找不到-lGoogleConversionTracking的库 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
注意:找不到-lGoogleConversionTracking的库
你如何解决这个问题?我想不使用桥接头,而是使用这些模块定义文件,如果可能的话。
答案 0 :(得分:1)
模块图是我麻烦的同义词!桥接标题很糟糕,但它们只适用于大多数情况。无论如何,请确保:
SWIFT_INCLUDE_PATHS
- Swift编译器为其他Swift模块搜索的路径列表。这告诉Xcode模块映射的位置。LIBRARY_SEARCH_PATHS
- 这是链接器搜索产品使用的库的文件夹路径列表。 Xcode仍然需要知道模块的二进制文件的位置。此外,您可能希望使用伞形标题,而不仅仅是标题,请参阅documentation。我还建议使用modulemap
扩展名,不确定module.map
是否有所不同,但这就是我记得在大多数项目中看到和使用它的方式。