Как мне использовать libproc.h в модульной среде Swift?

Я прошел все шаги из других подобных вопросов, и я все еще застрял.

Мне нужно использовать функцию proc_pidpath в libproc.h чтобы получить путь к процессу BSD по его PID. Тем не мение, libproc.h не является модульным заголовком, поэтому я не могу включить его в свой зонтичный заголовок:

строка кода, читающая " с ошибкой "Включение немодульного заголовка в модуль фреймворка"" title="строка кода, читающая "#import " с ошибкой "Включение немодульного заголовка в модуль фреймворка">

Справедливо; Теперь я пытаюсь включить его в карту моего модуля:

framework module My_Modular_Framework {
    umbrella header "My_Modular_Framework.h"

    private header "/usr/include/libproc.h"

    export *
    module * { export * }
}

Хорошо, теперь я получаю эту ошибку-рвоту, когда кажется, что многие системные модули / заголовки находятся в моем проекте:

Длинный список ошибок типа

Я не могу понять, что еще делать. Как я уже сказал, я уже безуспешно пытался выполнить все шаги других подобных вопросов. Что здесь можно сделать? Как я могу использовать proc_pidpath ? Есть ли другой, более дружественный к модульной структуре Swift способ получить путь от идентификатора процесса?

Я не хочу включать "Разрешить немодульные включения в модули фреймворка", потому что это противоречит цели модульного фреймворка.

1 ответ

Поскольку libproc.h а также libproc.c с открытым исходным кодом ( APSL 2.0) как часть проекта Apple Darwin, вы можете просто включить их (в соответствии с условиями лицензии, конечно) в ваш проект. Поскольку ни один из них не импортирует немодулярные заголовки, вы можете скомпилировать его самостоятельно, и компилятор не будет жаловаться!

Другие вопросы по тегам