исполняемые файлы?
Библиотеки на С или что?
Ну если тебе просто линковаться с библиотекой (so/dll) надо то биндингов+dub вроде должно хватить. Если ты хочешь собирать код на С c кодом на D то это уже нетривиальная задача.
У меня если сорсы библиотки на С, мне нужно как-то 1) сгенерировать модули для D 2) скомпилировать эту библиотеку как такое обычно делают?
Ваще не понял. Ты хочешь сконвертировать код на С в код на D?
Я хочу использовать С хедеры в коде D
Ну. Сейчас пилят супер-пупер-ультра-вау решение под названием ImportC — тогда смогут импортить хедеры напрямую в D. Но пока что вроде ещё не готово. Вариант два: ты переписываешь хедеры на D сам и потом их используешь чтобы прилинковаться к библиотеке. Насколько я знаю, есть решения для генерации биндингов, но их всё равно потом надо править ручками. Так что лучше сразу посмотреть, нет ли на dub готовых, если нет... Ну вот придётся их искать. Лично я этим не занимался, могу ошибся.
https://dlang.org/spec/importc.html#other-solutions
библиотека чисто твоя или общеизвестная? если общеизвестная, то, обычно её вместе с биндингом не собирают, просто подразумевается что она уже в системе, а в dub прописывается только линковка с ней, а если твоя, то уже интересней
можно сказать, что моя
тогда можно дергать сборку каким-нибудь pre-build
а почему так нельзя для общей либы?
ну как-то странно с биндингом тянуть оригинал, может у человека своя атмосфера и, например, сборка всего С кода в системе производится шлангом или с какими-то особенными флагами или со своей glibc, всё это учитывать в сборке и нести с собой? а если кросскомпиляция? нетривиально может быть настроен компилятор
и ты хочешь прям по феншую распространять?
Только вот нет какого то стандартного способа установки библиотеки в систему же
есть, просто это сложнее
Обсуждают сегодня