有没有办法在不创建git存储库的情况下在Swift项目中包含C库?这似乎是包管理器文档中的the only way explained。启动一个git repo只是为了包含一些已经在我的计算机上的C头,这看起来很笨拙。
我尝试在模块中使用module.map
文件,就像任何纯Swift模块一样,并且C模块导入正常,但不包含符号。
这就是我的项目:
Project
├── Package.swift
└── Sources
├── Project
│ └── main.swift
├── The_C_module_i_want
│ ├── module.modulemap
│ └── Package.swift (empty, else it won’t compile)
└── Some_Swift_module
└── taylor.swift
顶级Package.swift
看起来像
import PackageDescription
let package = Package(name: "Project",
targets : [
Target(name: "Project",
dependencies: ["Some_Swift_module",
"The_C_module_i_want"]),
Target(name: "Some_Swift_module"),
Target(name: "The_C_module_i_want")
]
)
,模块图如下所示:
module The_C_module_i_want {
header "/usr/local/include/The_C_library/the_c_library.h"
export *
link ...
link ...
...
}