一尘不染

在Linux上的Swift中使用C库

linux

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


阅读 306

收藏
2020-06-03

共1个答案

一尘不染

使用系统模块导入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中创建,并带有一个version标签:

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...
2020-06-03