metaclass: (Default)
[personal profile] metaclass
А вот как в сишечьке принято втаскивать сторонние либы в зависимости?

Например, мне нужна структура типа паскалевских строк - т.е. буфер, размер и capacity.
Делать самому - очевидный грех, брать готовое - так у половины сторонних либ самодельные аналоги, а из готового обычно какой-нибудь нечеловеческий трэш вроде GLib, который под винду еще просто так и не соберешь.

Date: 2016-04-10 02:20 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Ну да, но что поделаешь? Есть куча компиляторов которые умеют только ANSI C. Я на работе каждый день слежу за тем, чтобы код был согласно POSIX-2001. Я вживую в 2016 году в билд энваерменте интеля видел ошибки в GNU awk и GNU Make которые были пофикшены в 2003 и 2007 годах соответственно

Это juick.com/Kim, можешь у него спросить.

Date: 2016-04-11 12:00 pm (UTC)
From: [identity profile] rhxca.livejournal.com
квантовый дурачок Березовский, ты уже поиграл со своей мамой в пирамидки и кубики?

Date: 2016-04-12 11:08 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Во, он ответил.

А вообще там всё просто. Если нужно реализацию чего-нибудь большого, вроде работы с графикой, с сетью, с базами данных и того подобного, то берутся просто соответствующие либы и подключаются с использованием pkgconfig (или его обёртки из autoconf/cmake/etc). Если нужно чего-то маленьго, вроде хэшей, контейнеров или , то можно либо смотреть на ccan или gnulib на предмет наличия готовой реализации (впрочем иногда даже тут бывают вещи вроде sglib или libav которые можно взять либой, но уже реже) и при отсутствии таковой писать самостоятельно, либо брать монструозные вещи вроде glib.

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

Как-то так

Если нужно реализацию чего-нибудь большого, вроде работы с графикой, с сетью, с базами данных и того подобного, то берутся просто соответствующие либы и подключаются с использованием pkgconfig (или его обёртки из autoconf/cmake/etc). Если нужно чего-то маленьго, вроде хэшей, контейнеров или переносимых обёрток на сишные функции, то можно либо смотреть на ccan или gnulib на предмет наличия готовой реализации (впрочем иногда даже тут бывают вещи вроде sglib или libav которые можно взять либой, но уже реже) и при отсутствии таковой писать самостоятельно, либо брать монструозные вещи вроде glib.

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

Пофиксил очепятки

Date: 2016-04-10 03:13 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Я б для начала ccan (https://ccodearchive.net/) глянул. Для чего-нить тривиального самое оно.

Date: 2016-04-10 03:32 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Я последнее время обнаруживаю, что в скале проще всего накатать самому, потому что тексты обычно короткие.

Date: 2016-04-10 03:38 pm (UTC)
From: [identity profile] binf.livejournal.com
Делать самому - очевидный грех

вот как раз таки на сях идеоматично такое писать руками, а тащить в виде зависимостей - очевидная содомия

Date: 2016-04-10 06:34 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
Ага. Я в последнее время чаще перетаскиваю проекты на C++ только для того, чтобы проще с зависимостями было и STL для всяких типовых вещей.

Date: 2016-04-10 03:40 pm (UTC)
From: [identity profile] max630.livejournal.com
apt-get install lib***-dev :)

для windows вроде nuget же придумали уже. Вот оттуда и брать.

вообще такая ерунда как строки с известной слиной едва ли существует в виде отдельной библиотеки, как правило это вствоено в более крупные фреймворки или вообще внутренние в каком-нибудь проекте.

Date: 2016-04-10 03:45 pm (UTC)
From: [identity profile] metaclass.livejournal.com
нугет это ж для дотнетов
Еще я опасаюсь, что будет как с тем npm и leftpad.

Date: 2016-04-10 04:06 pm (UTC)
From: [identity profile] max630.livejournal.com
> нугет это ж для дотнетов

не только. Вот например для плюсов: https://www.nuget.org/packages/msgpack-c/
по идее там любой язык сойдёт, это ж просто зип архив

> будет как с тем npm и leftpad

ну вообще можно поднять свой nuget сервер и скопировать туда.

Date: 2016-04-11 09:23 am (UTC)
wizzard: (2016-01)
From: [personal profile] wizzard
нугет в этом смысле чуть более адекватен, но да, package management is hard

Date: 2016-04-10 03:43 pm (UTC)
From: [identity profile] kincajou.livejournal.com
на лиспе надо писать!

Date: 2016-04-10 07:55 pm (UTC)
From: [identity profile] hgfd hgfd (from livejournal.com)
+ Image

Date: 2016-04-10 04:44 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Кошерные библиотеки покупаются. А так - проще писать самому, чем копаться в.

Date: 2016-04-10 06:21 pm (UTC)
From: [identity profile] dmytrish.livejournal.com
Apache Portable Runtime (apr) еще есть, может хоть он соберется под венду.

А так сишечка и зависимости в одном флаконе это чаще всего боль. Чем их меньше, тем лучше.

Date: 2016-04-10 06:39 pm (UTC)
From: [identity profile] pupsikk.livejournal.com
А почему бы не пользоваться фичами Ци++ из Си?
Там есть практически все что нужно - std::string и STL.

Date: 2016-04-10 06:45 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
ПРЕВЕД, ПУПСЕГ

Date: 2016-04-10 07:48 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
методом гугления в стековерфлоу

подточить скопированные сорцы напильничком, покласть в свои сорцы без указания источнега

Date: 2016-04-10 07:59 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Мне тут рассказали на неделе, что в одну минскую контору маски шоу нагрянули за нелицензионный софт.

Date: 2016-04-10 09:36 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
который они и написали?

эти -- могут

тем более что надо бюджет наполнять

а может надо было просто наехать на контору

в 1997 в миде я лично ставил прогу на нелицензионную вин 95
Edited Date: 2016-04-10 09:38 pm (UTC)

Date: 2016-04-10 09:49 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Кто что может? Тут никогда вроде никого не ебали за софт.

Date: 2016-04-12 05:13 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
За нарушение GPL нагрянули, что-ли?

Есть Autodesk, Microsoft, Adobe. 1C еще. Вот за софт этих могут и дело завести. До всего остального органам дела нет.

Date: 2016-04-12 05:16 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Вот мне тоже интересно, к кому и за что. :-)

Date: 2016-04-12 05:19 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
В одной из контор, где я работал, в отделе техподдержки несколько раз подготавливали сервер для заказчика. С Oracle linux и собственно Ораклом - пиратским, естественно. Шло это все на разные нефтебазы. Если к этим и нагрянут, то пиратский софт явно будет последней претензией из всех.

Date: 2016-04-10 09:37 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
CMake'ом или автоконфом.

Date: 2016-04-10 09:38 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Ну, то есть сначала это pkg-config, а потом...

Date: 2016-04-10 09:47 pm (UTC)
From: [identity profile] narmaru.livejournal.com
https://github.com/antirez/sds жеж

Date: 2016-04-11 12:02 pm (UTC)
From: [identity profile] rhxca.livejournal.com
метакласс, когда ты убьёшь всех ёбаных пирадасов програмистов?

Date: 2016-04-16 09:40 pm (UTC)
From: [identity profile] cottidianus.livejournal.com
М, apt-get install glib-dev
а пользователи виндовс должны страдать - их пользоваться виндовс никто не заставлял

Date: 2016-04-16 09:43 pm (UTC)
From: [identity profile] cottidianus.livejournal.com
Срсли, у нас есть специальный репозиторий, где свалка собранных статик либ для венты. Как и из каких исходников это собиралось - не знает никто кроме того кто собирал. А он забыл через месяц после коммита.
Ну а статик линкадж - это так вентузятники решают вопрос с дистрибьюцией.

И я не знаю что посоветовать и не вижу как сделать хорошо в этой, бля, операционке
Edited Date: 2016-04-16 09:48 pm (UTC)

Date: 2016-04-16 11:30 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Кстати, под виндой со сборкой не так страшно все - особенно если сразу задаться целью "повторяемая сборка на отдельной машине да с тестами".

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 12:28 am
Powered by Dreamwidth Studios