LINUX.ORG.RU

Экосистема разработки на С в Linux

 ,


1

4

Подкиньте ссылок, где почитать про инструменты разработки в Линуксе?
При сборке программ, попадаются на глаза всякие autotools, pkg-config и т.д.
Интересна статья, где описывалось бы, как всем этим добром пользоваться при разработке.
Допустим описание от какого-нить разработчика, как у него процесс этой самой разработки поставлен.
Или может кто-нить может здесь поделиться опытом?



Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от Eddy_Em

Офигеть. Ты зависимости от хидеров вручную в мейкфайл вставляешь?

anonymous
()
Ответ на: комментарий от Legioner

Для сборки проекта принято использовать gnu make.

autotools, pkg-config, cmake это неудачные решения, не стоит их использовать.

Да ну? И как мне файл для make поддерживать в проекте на полсотни модулей (что далеко не предел) и с разными вариантами сборки? Всё руками расписывать?

Make - это низкоуровневый инструмент для сборки, использующий низкоуровневый же конфиг. Со своей задачей он справляется отлично, но заставлять программиста писать этот самый низкоуровневый конфиг вручную, за исключением очень уж простых проектов - это бред, imho. Программисту и так есть чем заняться.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от emulek

только про autotools имеется Over9000 страниц мелкого текста

О, а где их можно почитать? Для своего проекта я бы, пожалуй, взял cmake, но autotools тоже хочется понять как следует, поскольку в чужих исходниках на него натыкаешься постоянно.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

но autotools тоже хочется понять как следует

Может все-таки autoconf? В комплекте info-файл >1M.

arson ★★★★★
()
Ответ на: комментарий от hobbit

Да ну? И как мне файл для make поддерживать в проекте на полсотни модулей (что далеко не предел) и с разными вариантами сборки? Всё руками расписывать?

Не надо писать проекты с полсотней модулей. Для примера, как использовать make в больших проектах, можно посмотреть на Linux.

Make - это низкоуровневый инструмент для сборки, использующий низкоуровневый же конфиг. Со своей задачей он справляется отлично, но заставлять программиста писать этот самый низкоуровневый конфиг вручную, за исключением очень уж простых проектов - это бред, imho. Программисту и так есть чем заняться.

У gnu make есть много расширений, позволяющих писать обобщённые правила.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Если не хочется вводить отдельные переменные - тогда хотя бы так:

CFLAGS :=  my_shiny_cflags ${CFLAGS}
LDFLAGS := my_shiny_ldflags ${LDFLAGS}
LIBS = libs_to_link_to

Официальном руководство рекомендует вводить отдельные переменные(например ALL_CFLAGS) и уже туда добавлять свои флаги:

If there are C compiler options that must be used for proper compilation of certain files, do not include them in CFLAGS. Users expect to be able to specify CFLAGS freely themselves. Instead, arrange to pass the necessary options to the C compiler independently of CFLAGS, by writing them explicitly in the compilation commands or by defining an implicit rule, like this:

Pinkbyte ★★★★★
()
Ответ на: комментарий от hobbit

Плюсую. Даже тот же Autotools будет удобнее, хотя его синтаксис(в особенности m4) - тот еще ад.

Любители удобств выбирают cmake - и правильно делают. Писать кросс-платформенные make-файлы руками - то еще удовольствие.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Legioner

autotools, pkg-config, cmake это неудачные решения, не стоит их использовать.

ИМХО забыл, или ты упоротый фанатег?

emulek
()
Ответ на: комментарий от hobbit

О, а где их можно почитать?

дык было выше, но повторю: http://www.gnu.org/software/autoconf/manual/autoconf.html

Есть и по-русски, гугли, там много.

autotools тоже хочется понять как следует, поскольку в чужих исходниках на него натыкаешься постоянно.

ну мне плевать на религию, оно просто работает.

emulek
()
Ответ на: комментарий от Legioner

Не надо писать проекты с полсотней модулей.

не всегда нужен helloworld.

emulek
()
Ответ на: комментарий от deterok

fail в ссылке - это, конечно, тупая транслитерация, но забавно

slackwarrior ★★★★★
()
Ответ на: комментарий от Legioner

autotools, pkg-config, cmake это неудачные решения, не стоит их использовать.

Зело тучен ты, баян-сказитель.

slackwarrior ★★★★★
()
Ответ на: комментарий от hobbit

Да ну? И как мне файл для make поддерживать в проекте на полсотни модулей (что далеко не предел) и с разными вариантами сборки? Всё руками расписывать?

Ну как-как... Знать, разные изводы соборные «не нужны»(ТМ) тебе, добрый молодец. Суета это все и томленье духа. :)

slackwarrior ★★★★★
()
Ответ на: комментарий от reprimand

1) Наехал потому что тебе не нравится слово «экосистема», хотя такой термин есть и он незаменим

2) Выдал очевидность что файл можно компилировать компилятором, хотя вопрос не об этом

3) Порекомендовал NetBeans, который врядли будет хорошо работать даже для двух разработчиков с отличиями в системе. Его проект в git тоже коммитить?

vertexua ★★★★★
()
Ответ на: комментарий от Legioner

Linux не предназначен для сборки в разных окружениях, когда надо автоматически подстроиться под компилятор, стандартную библиотеку, фичи и баги системы, версию POSIX, небо и аллаха.

anonymous
()
Ответ на: комментарий от Pinkbyte

Любители удобств выбирают cmake - и правильно делают.

Объясните мне почему любители удобств никогда, никогда, НИКОГДА не снисходят до того чтобы положить в дерево файлы INSTALL и/или README, а чтобы узнать элементарные опции для кастомизации сборки приходится читать протухшие вики проекта или CMakeLists.txt?

anonymous
()
Ответ на: комментарий от anonymous

Потому что они дураки. Нормальные разработчики не считают, что парсинг билд-системы для того чтобы узнать опции умолчальной сборки - это ок.

Да, в файле INSTALL может быть не вся документация по сборке, но хотя бы банальные

cmake . && make или
autoreconf, ./configure, make

обычно должны быть

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от anonymous

bsd.org

тогда уж и freebsd.org, точнее *bsd. Но ТС спрашивал про, ласкающее слух (любителей монополий в основном) *инструменты разработки* в Линуксе...

anonymous
()
Ответ на: комментарий от vertexua

спасибо, так намного лучше

1) Наехал потому что тебе не нравится слово «экосистема», хотя такой термин есть и он незаменим

такое слово есть, и как термин он употребляется в биологии, если я не ошибаюсь. Всё остальное - это маркетинг и buzzwords, который начался со времен Apple с их «экосистемой», затем хомячки это начали воспринимать это как должное. Вслед за хомячками пошла остальная масса людей, и теперь глупость - «типа» норма. Если тебе нравится это слово - пожалуйста, я же не против.

2) Выдал очевидность что файл можно компилировать компилятором, хотя вопрос не об этом

судя по содержанию шапки темы, ТС вообще мало понимает о чем говрит. Потому и сказал очевидное - попробовать что попроще.

3) Порекомендовал NetBeans, который врядли будет хорошо работать даже для двух разработчиков с отличиями в системе.

порекомедовал по причине простоты, ибо всё уже сделано за тебя (makefile, компиляция+запуск в 1 кнопку, думать почти не надо). Я же всё делаю руками, и netbeans не пользуюсь

Его проект в git тоже коммитить?

сомневаюсь, что ТС знает такие слова

reprimand ★★★★★
()
Ответ на: комментарий от vertexua

«Ты идиот, убейся»

если я отвечу да, то, получается, я тоже оскорблю ТС-а

Скажем там:
«Ты не шаришь, но уже хочешь что-то получить. Вот тебе однокнопочное IDE, где уже всё за тебя настроили.»

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

Он не сказал что он ничего не знает. Представь что он например Java разработчик с 10-летним стажем. Там есть Maven, всякие системы тестирования, CI. Ему не нужны очевидности что мол «компилируй компилятором». Ему нужен гайд в котором скомбинировано три каких-то утилиты, которые позволяют довести приложение от main.cpp до deb пакета в PPA. Вот о чем вопрос.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Я например ни разу не программируя на Ruby мог бы задать в точности так сформулированый вопрос о Ruby если мне было бы надо, хотя гугл говорит что есть gemы и тд, но хотелось чтобы порекомендовали гайды полного цикла разработки.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Представь что он например Java разработчик с 10-летним стажем
www.linux.org.ru

серьезно? ты думаешь, Java разработчик с 10-летним стажем не сможет загуглить и понять то, что ему требуется в кратчайший срок? Это ЛОР, ау! =)

reprimand ★★★★★
()
Ответ на: комментарий от vertexua

это личные предпочтения каждого
Я создаю тему на ЛОР-е только в крайнем случае. В 90% все, что мне требуется я решаю самостоятельно, максимум за несколько дней.

reprimand ★★★★★
()

Скажу фигню, но мне Clion early access оч. понравился.
Недостатки:

  • cmake only (поддержку остального вроде введут позже)
  • будет вроде платным
  • jre(много памяти жрет)

Не падала ни разу.
Нашел с ее помощью:

  • почему xfreerdp у меня иногда уходил в бесконечный цикл
  • почему dolphin emulator не видит моего джойстика
  • написал простейшую х-ь для получения SRV custom записи через libresolv для самосборного тонкого клиента
  • пилю потихоньку очередную х-ь на xlib
  • неудобств не испытывал

Сам не сишник ... и да, clion и cmake может и оверхед для безплюсового c. Autotools стал бы учить только если больше заняться нечем.

koi8-r
()
Ответ на: комментарий от reprimand

Ты на С или С++ программы пишешь? Думаю, тебе просто нечего сказать по теме.
emacs, ты видимо тоже в глаза не видел. Там основной порог - это понять, что
нажимаешь alt потом пишешь команду и нажимаешь интер, как-то так.
Вот кстати хорошая подборка для С/С++, можно даже готовый конфиг у товарища взять
http://tuhdo.github.io/c-ide.html

hardsky
() автор топика

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

Я так понимаю тут у нас «нулевой уровень».
Возьми для начала CodeBlocks какой-нибудь что-ли. Пообвыкнешься - может спускаться на ступеньку ниже в объятия ада :)

void_ptr ★★★★
()
Ответ на: комментарий от hardsky

Ты на С или С++ программы пишешь?

C

Думаю, тебе просто нечего сказать по теме.

все, что я хотел сказать - уже сказал. Всё, что более - уже сказал кто-то другой.

emacs, ты видимо тоже в глаза не видел

4.2

Там основной порог - это понять, что нажимаешь alt потом пишешь команду и нажимаешь интер, как-то так. Вот кстати хорошая подборка для С/С++, можно даже готовый конфиг у товарища взять
http://tuhdo.github.io/c-ide.html

ну а я-то тут при чем? когда уже люди научаться читать тему? я говорил не о себе

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

порог вхождения

Строго говоря, ТС порог вхождения волнует не особенно, его интересует

где почитать про инструменты разработки в Линуксе?

Deleted
()
Ответ на: комментарий от Bfgeshka

TC скачает его, потыкает, погримасничает и забьёт на это дело. А мог бы быть хорошим девелопером в будущем.

Вот и хорошо. Сейчас С++ достиг положения PL/I, а С - Фортрана.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от qulinxao

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

loz ★★★★★
()
Ответ на: комментарий от loz

именно.

однако чем больше golang кода ( особенно из стдлибс :) )

будет читано[кода] хипстерами и прочими тем будем надеяться лучше будет .

эволюция не мгновенна, и golang не панацея - но если искать «менее опасный С» то golang лучше подходит на эту роль чем Java|C# и как ни печально часто чем С++

qulinxao ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.