Могу ли я объединить C++ и Swift в одном пакете Swift, используя диспетчер пакетов Swift?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Могу ли я объединить C++ и Swift в одном пакете Swift, используя диспетчер пакетов Swift?

Сообщение Гость »


Я хотел бы написать один модуль на C++ и создать несколько функций на C, доступных в Swift.

Я несколько озадачен, потому что, что бы я ни делал, SPM настаивает на попытке скомпилировать код C++, как если бы это был Objective-C, и, конечно, не может найти правильные заголовки.

Вот моя попытка.

Структура исходного каталога:

Источники | +-CxxМодуль | | | +-включить | | | | | +-CxxModule.hpp | | | +-CxxModule.cpp | +-СвифтМодуль | +-SwiftModule.swift Манифест Package.swift выглядит следующим образом:

// версия Swift-tools: 5.6 импорт описания пакета пусть пакет = Пакет( имя: "CxxLibrary", продукты: [ .библиотека( имя: "CxxLibrary", цели: ["SwiftModule"]), ], зависимости: [ ], цели: [ .цель( имя: "CxxModule", зависимости: []), .цель( имя: "СвифтМодуль", зависимости: ["CxxModule"], путь: «Источники/SwiftModule» ), ] ) CxxModule.hpp выглядит следующим образом:

#ifndef CxxModule_hpp #define CxxModule_hpp #include extern "C" void printHello(); #endif /* CxxModule_hpp */ CxxModule.cpp выглядит следующим образом:

#include "CxxModule.hpp" void printHello() { // используем что-нибудь из стандартной библиотеки, чтобы убедиться // C++ действительно используется std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»