Как мне использовать libproc.h в модульной среде Swift? - PullRequest
0 голосов
/ 31 октября 2018

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

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

a line of code reading" with the error "Include of non-modular header inside framework module"">

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

framework module My_Modular_Framework {
    umbrella header "My_Modular_Framework.h"

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

    export *
    module * { export * }
}

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

A long list of errors like

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

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

1 Ответ

0 голосов
/ 01 ноября 2018

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

...