Я грызу кости за прошедший день и не могу найти решения.
Я создаю быструю оболочку для cfitsio, которая подходит для астрономов:
https://heasarc.gsfc.nasa.gov/fitsio/
Я создал простую оболочку swift для доступа к описанному выше как cFitsIO
в виде модуля, следуя инструкциям ниже: https://www.hackingwithswift.com/articles/87/how-to-wrap-a-c-library-in-swift
Когда яВыполните быстрый запуск файла main.swift
оболочки, я вижу, что импорт выполнен успешно, но одна из функций, fits_open_file
, не может быть решена.Причина, по которой я говорю, что импорт работает, заключается в том, что swift предлагает другую функцию, которая находится в библиотеке c в качестве альтернативы.
На странице cfitsio сказано, что она включает только fitsio.h
, поэтому я ожидаю, что все функции будутоттуда вызывается.
Однако после клонирования GitHub и выполнения некоторого grep я не могу найти никакой сигнатуры для функции fits_open_file
.
еще одна вещь, когда я создаю оболочку swift, я использую pig-config --type system-module
, поскольку я также могу загрузить cfitsio через brew, который помещает его в папку /usr/local/include
моей системы.
Iчитайте где-нибудь еще о том, что Xcode не находит должным образом вложенные заголовки, по следующей ссылке, но у fitsio есть много заголовочных файлов, некоторые с константами, некоторые с макросами и т. д. Я бы ожидал более чистый способ выполнения этого импорта, чем утомительный просмотр каждого из них.заголовочный файл должен иметь?
https://medium.com/shopify-mobile/wrapping-a-c-library-in-swift-part-1-6dd240070cef