के तहत स्विफ्ट में इसका खुलासा करें क्या मूल सी या सी ++ कोड संकलित करने और लिनक्स पर स्विफ्ट करने का कोई तरीका है? मैं देख सकता हूं कि libdispatch जैसे कई ऐप्पल पुस्तकालय शुद्ध सी में लिखे गए हैं और आप उन्हें आयात करके स्विफ्ट में एक्सेस कर सकते हैं।संकलन सी कोड और लिनक्स
उदाहरण सेट करने के लिए मान लें कि मेरे पास दो फाइलें हैं Car.c
और Car.h
जो Car
नाम की संरचना को परिभाषित करती हैं। क्या कोई तरीका है कि मैं उन्हें संकलित कर सकता हूं और आयात विवरण लिखकर स्विफ्ट में उनका उपयोग कर सकता हूं?
import Car
मैं module.modulemap
फ़ाइल निर्देशिका के अंदर जहां .c
, .h
और Package.swift
फ़ाइलें स्थित हैं लेखन की कोशिश की है:
module Car {
header "Car.h"
export *
}
और swift build
चल रहा है। यह उपज त्रुटि:
<unknown>:0: error: unexpected 'commands' value (expected map)
<unknown>:0: error: unable to load build file
मैं स्विफ्ट संस्करण 3.0-देव उपयोग कर रहा हूँ (24 मार्च 2016)
[अपडेट 1]
मैं से संपर्क किया है मैक्स (mxcl) - में से एक स्विफ्ट पैकेज मैनेजर के निर्माता और उन्होंने मुझे modulemap
से छुटकारा पाने के लिए कहा और .c
और .h
फ़ाइलों को सीधे Sources
फ़ोल्डर में डाला। मैंने पैकेज को संकलित करने के बाद यह मॉड्यूल के रूप में उपलब्ध नहीं है। इसके अलावा मैं .h
फ़ाइल में किसी भी परिभाषित कार्यों को कॉल नहीं कर सकता।
उद्देश्य-सी ब्रिजिंग या मॉड्यूल पर एक नज़र डालें। –