C'è un modo per compilare codice C o C++ nativo ed esporlo a Swift su Linux? Vedo che diverse librerie Apple come libdispatch sono scritte in puro C e che puoi accedervi in Swift semplicemente importandole.Compilare il codice C ed esporlo a Swift sotto Linux
Per impostare l'esempio, diciamo che ho due file Car.c
e Car.h
che definiscono la struttura denominata Car
. C'è un modo in cui posso compilarli e usarli in Swift scrivendo istruzioni import?
import Car
Ho provato a scrivere module.modulemap
file all'interno di directory in cui, si trovano .h
e Package.swift
file .c
:
module Car {
header "Car.h"
export *
}
e funzionante swift build
. Questo errore resa:
<unknown>:0: error: unexpected 'commands' value (expected map)
<unknown>:0: error: unable to load build file
Sto usando Swift versione 3.0-dev (24 marzo 2016)
[Update 1]
Ho contattato Max (MXCL) - uno dei i creatori di Swift Package Manager e mi ha detto di sbarazzarmi dello modulemap
e di mettere i file .c
e .h
direttamente nella cartella Sources
. Dopo che ho fatto il pacchetto compilato ma non è disponibile come modulo. Inoltre, non è possibile chiamare nessuna delle funzioni definite nel file .h
.
Dai un'occhiata al bridging o ai moduli Objective-C. –