linux - 在 Linux 上的 Swift 中使用 C 库

标签 linux swift

我知道如何在 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 仓库中创建,带有版本标签:

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...

关于linux - 在 Linux 上的 Swift 中使用 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131110/

相关文章:

linux - 如何给 Linux 用户 sudo 访问权限?

python - Python 中的 MongoDB 图形用户界面

ios - RxSwift 订阅将在启动时工作

swift - 想知道这是否是执行此操作的最佳方式。 tableview 切换单元格大小

linux - 如何使用 printf 将部分输入传递给 shell 脚本以自动运行它?

python - 如何在python和 Node 进程之间共享mmap

linux - 从源代码构建软件比从包管理器安装它们有什么优势吗?

ios - 在关闭之前的 AlertViewController 之后呈现新的 AlertViewController - Swift

swift - 我们如何在其选择项委托(delegate)上重新加载 Collection View ?

ios - 如何在ios swift中绘制以折线为半径的多边形