我知道如何在Mac OS上使用Xcode在Swift中访问C库,并且import Glibc
在Linux上也知道,但是如何在Linux上使用Swift这样的C库,如OpenGL?
使用系统模块导入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...
问题内容: 是否有使用C 读取用于Linux的INI文件等配置的标准方法? 我正在基于Linux的手持设备上工作,并用C编写代码。 否则,我想知道其他选择。 最终更新: 我已经探索甚至使用过LibConfig。但是占用空间很大,而且我的用法太简单了。因此,为了减少占用空间,我推出了自己的实现。该实现不是太通用,实际上到目前为止已经相当耦合了。启动应用程序时,配置文件将被解析一次,并设置为一些全局变
问题内容: 我想使用系统蜂鸣器(并且只有在没有蜂鸣器/无法访问蜂鸣器时才使用扬声器)生成具有特定频率和长度(针对不同的声音信号)的蜂鸣声。我知道可以通过使用ioctl来做到这一点,但这需要root访问权限,而这是我所不希望的。 我知道我可以只使用“ beep”命令,但这将是一个依赖关系,如果可能的话,不应使用它(根本没有外部依赖关系,只有基本的linux库和C)。 我目前拥有的是以下代码(但这需要
问题内容: 我正在尝试跟踪网络状态。我浏览了FXReachability的代码。具体来说有以下方法。 它所做的是不断检查与指定主机的连接。我正在尝试将此方法转换为Swift,但遇到了一些问题。 1.将主机字符串转换为UTF8。 我必须将主机字符串转换为UTF8并将其传递给SCNetworkReachabilityCreateWithName方法。我在Objective- C中找不到与属性完全相同的
问题内容: 在Linux上是否使用线程安全写入stdout ?使用下级命令怎么办? 问题答案: 它不是C标准指定的-取决于您对C标准库的实现。实际上,C标准甚至根本没有提到线程,因为某些系统(例如嵌入式系统)没有多线程。 在GNU实现()中,stdio中处理对象的大多数高级函数都是线程安全的。通常没有名字的(例如)。但是,线程安全性处于每个函数调用级别:例如,如果您多次调用,则保证每个调用都是原子
问题内容: 平台:Debian Wheezy 3.2.0-4-686-pae 编译器:GCC(Debian 4.7.2-5)4.7.2(代码:: Blocks) 我想将文件从一个位置移动到另一位置。移动到不同的驱动器或文件系统没有什么复杂的。我知道执行此操作的“标准”方法是简单地复制文件,然后删除原始文件。但是我想要某种方式来保留文件的所有权,模式,上次访问/修改等。我假设我必须先复制文件,然后再
问题内容: 我正在将我的项目从Objective-c转换为Swift,并且正在使用一个Swift类,我正在尝试在Objective- c类中进行访问。我的问题是,在Objective-C类中不可访问。这是我的速成班: 当我查看文件时,看不到: 当我尝试在我的Objective-c类中使用时,出现编译器错误。 有人知道这个问题吗?如何在Objective-c中访问Swift协议? 问题答案: 您需要