gpt4 book ai didi

c++ - 从 CocoaPods 库中的编译中排除源文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:37 27 4
gpt4 key购买 nike

我正在转换一个库 ( Unrar4iOS ) 以使用 CocoaPods,但我遇到了编译问题。大多数源文件都是 C++ 文件,其中一些文件没有直接添加到项目“编译源”列表中,而是通过 #include 编译的。当其中一个被自己编译时,它失败了,因为它取决于 #include 的文件(我知道有点奇怪)。

简而言之,我需要将文件下载到 Pods 目录中,但不将其包含在库的目标中。据我所知,source_files podspec 同时控制两者。有没有一种方法可以完全在库端实现这一点,而无需借助客户端项目的 Podfile 中的某些 Hook ?

最佳答案

我必须在 source_files 中列出每个需要显式编译的文件属性,并列出需要在 preserve_paths 中隐式构建的文件属性(property)。像这样:

Pod::Spec.new do |s|
s.name = "UnrarKit"
...
s.source_files = "Classes/*.{mm,m,h}",
"Libraries/unrar/*.hpp",
"Libraries/unrar/archive.cpp",
"Libraries/unrar/arcread.cpp",
"Libraries/unrar/cmddata.cpp",
...
# These files are built implicitly as dependencies
s.preserve_paths = "Libraries/unrar/arccmt.cpp",
"Libraries/unrar/coder.cpp",
"Libraries/unrar/log.cpp",
...

关于c++ - 从 CocoaPods 库中的编译中排除源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com