2015-12-14 69 views

回答

3

这是可能的,但通常的做法是定义一个名为'Csomething'的单独包,其中只需将C图书馆名称与大写C并在Github上托管。 C程序包只需要包含一个空的Package.swift文件和一个module.modulemap。在module.modulemap你指的是C头文件在哪里:

 
module CPackage [system] { 
    header "/usr/local/include/myheader.h" 
    link "libraryname" 
    export * 
} 

因此,在原来的包,你只需把一个依赖于对在CPackage如:

 
.Package(url: "https://github.com/aleph7/CHDF5.git", majorVersion: 1) 

,然后你可以import CPackage

https://github.com/aleph7/CHDF5是一个简单的C包的好例子

+0

如果它是'/ usr/local位置'中已有的系统库,那么它可以工作,但自定义C文件又如何呢?我应该将它编译到一个库中并将它们添加到'/ usr/local/lib'中? –

+0

我会回答我自己的问题,对于自定义代码,您需要创建一个动态库并将它们放置在与系统库相同的位置。然后可以在'module.modulemap'链接到它们。 –

+0

库也可以是静态的。使用'swift build'你可以创建一个'.a'库,然后将它拖放到Xcode中 - 假设Xcode使用的是与'swift build'相同的工具链 – timbo

相关问题