172 похожих чатов

Как принято собирать С библиотеки, с которыми нужно будет линковать

исполняемые файлы?

16 ответов

19 просмотров

Библиотеки на С или что?

Ну если тебе просто линковаться с библиотекой (so/dll) надо то биндингов+dub вроде должно хватить. Если ты хочешь собирать код на С c кодом на D то это уже нетривиальная задача.

Egor-Kulebyakin Автор вопроса
Dark Hole
Ну если тебе просто линковаться с библиотекой (so/...

У меня если сорсы библиотки на С, мне нужно как-то 1) сгенерировать модули для D 2) скомпилировать эту библиотеку как такое обычно делают?

Egor Kulebyakin
У меня если сорсы библиотки на С, мне нужно как-то...

Ваще не понял. Ты хочешь сконвертировать код на С в код на D?

Egor-Kulebyakin Автор вопроса
Egor Kulebyakin
Я хочу использовать С хедеры в коде D

Ну. Сейчас пилят супер-пупер-ультра-вау решение под названием ImportC — тогда смогут импортить хедеры напрямую в D. Но пока что вроде ещё не готово. Вариант два: ты переписываешь хедеры на D сам и потом их используешь чтобы прилинковаться к библиотеке. Насколько я знаю, есть решения для генерации биндингов, но их всё равно потом надо править ручками. Так что лучше сразу посмотреть, нет ли на dub готовых, если нет... Ну вот придётся их искать. Лично я этим не занимался, могу ошибся.

Egor Kulebyakin
Я хочу использовать С хедеры в коде D

библиотека чисто твоя или общеизвестная? если общеизвестная, то, обычно её вместе с биндингом не собирают, просто подразумевается что она уже в системе, а в dub прописывается только линковка с ней, а если твоя, то уже интересней

Egor Kulebyakin
можно сказать, что моя

тогда можно дергать сборку каким-нибудь pre-build

Oleg B
тогда можно дергать сборку каким-нибудь pre-build

а почему так нельзя для общей либы?

000Sanya
а почему так нельзя для общей либы?

ну как-то странно с биндингом тянуть оригинал, может у человека своя атмосфера и, например, сборка всего С кода в системе производится шлангом или с какими-то особенными флагами или со своей glibc, всё это учитывать в сборке и нести с собой? а если кросскомпиляция? нетривиально может быть настроен компилятор

Egor Kulebyakin
можно сказать, что моя

и ты хочешь прям по феншую распространять?

Oleg B
ну как-то странно с биндингом тянуть оригинал, мож...

Только вот нет какого то стандартного способа установки библиотеки в систему же

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта