问题:在 Linux 上使用 Swift 中的 C 库

我知道如何在 Mac OS 上使用 Xcode 访问 Swift 中的 C 库,并且我知道 Linux 上的import Glibc,但是如何在 Linux 上使用 OpenGL 之类的 C 库和 Swift 呢?

解答

使用系统模块导入 OpenGL 头文件:https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md

假设您的目录布局如下:

COpenGL/
  Package.swift
  module.modulemap
  .git/

YourApp/
  Package.swift
  main.swift
  .git/

COpenGL/module.modulemap 文件看起来像:

module COpenGL [system] {
    header "/usr/include/gl/gl.h"
    link "gl"
    export *
}

这必须在单独的 git repo 中创建,带有版本标签:

touch Package.swift
git init
git add .
git commit -m "Initial Commit"
git tag 1.0.0

然后在 YourApp/Package.swift 文件中将其声明为依赖项

import PackageDescription

let package = Package(
    dependencies: [
        .Package(url: "../COpenGL", majorVersion: 1)
    ]
) 

然后在你的 main.swift 文件中你可以导入它:

import COpenGL
// use opengl calls here...
Logo

更多推荐