LINUX.ORG.RU

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

 ,


1

4

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



Последнее исправление: cetjs2 (всего исправлений: 2)

Экосистема

ты хоть понимаешь что ты несешь? если хочешь делом заниматься - оставь свои маркетингово-менеджерские словечки менеджерам и маркетологам.

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

Ты с helloworld на C начинал? Пишешь текст в файл, компилируешь с помощью gcc

Интересна статья, где описывалось бы, как всем этим добром пользоваться при разработке.
Или может кто-нить может здесь поделиться опытом.

скачай себе netbeans, загрузи профиль C, там тебе сразу и компиляция, и сборка с makefile-ом.

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

Для C качать целый netbeans это, имхо, как из гаубицы по комарам.

Мне для письма на С выше крыши хватает Sublime, многие пользуются vim'ом.

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

Мне для письма на С выше крыши хватает Sublime, многие пользуются vim'ом.

ответ был ТС-у. Я вообще geany использую :)

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

скачай себе netbeans, загрузи профиль C, там тебе сразу и компиляция, и сборка с makefile-ом.

Бывают же такие упоротые с мастдаем головного мозга. ТС абсолютно правильно ставит вопрос, это не «маркетингово-менеджерские словечки».

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

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

Всё-таки нетбинс это java.

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

TC скачает его, потыкает, погримасничает и забьёт на это дело

в связи с чем? я бы и дальше сидел на netbeans, но перешел на geany т.к. он легче и проще
объяснить ТС-у autotools, pkg-config в пару предложений невозможно - ему нужно самостоятельно читать что это такое и зачем оно нужно, в то время, когда ему нужно уже работать.

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

Аналогично, пока он будет его тянуть, мог бы уже прочитать давно man make, включить тот же geany и работать.

Bfgeshka ★★★★★
()

geany в качестве IDE (правда, я только как текстовым редактором им пользуюсь)

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

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

Поясню вопрос, вот есть у меня чужой проект с makefile и нужно мне там,
к примеру в этом проекте в исходном файле rsvg подключить.
Либа эта тянет 100500 библиотек, и вот начинаю я добавлять ключи к компилятору, где ему заголовки искать.
И вот тут я натыкаюсь на pkg-config, где одной командой pkg-config --cflags librsvg выдает мне все нужные ключи.
Удобно? Удобно. Т.е. рутина уже давно автоматизирована
и у C разработчика, есть набор инструментов и какой-то сценарий работы с ними.

hardsky
() автор топика
Ответ на: комментарий от i-rinat

Это расшифровывается как «Файл».

У них робот походу переводит.

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

Тупо cp шаблон Makefile

Пока не заморачивался.

Вот шаблон:

PROGRAM = <REPLACE WITH PROGRAM NAME>
LOADLIBES = <EXTRA LOAD LIBRARIES>
CXX.SRCS = <C++ SOURCE FILE NAMES>
CC = gcc
LDFLAGS = 
CXX = gcc
CXXFLAGS =  -Wall -Werror -Wextra
OBJS = $(CXX.SRCS:.c=.o)
all : $(PROGRAM) clean
$(PROGRAM) : $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) $(LOADLIBES) -o $(PROGRAM)
clean:
	/bin/rm -f *.o *~
depend:
	$(CXX) -MM $(CXX.SRCS)

### <DEPENDENCIES ON .h FILES GO HERE> 
# name1.o : header1.h header2.h ...

А еще у меня есть заготовка для cmake

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от next_time

А шо, разве не мастдай?

Ты бы еще вантузное говно под названием sublime вспомнил. Или (извиняюсь за маты) eclipse!

Eddy_Em ☆☆☆☆☆
()

иди на почтовые рассылки для современного положения.

ежель «как всё начиналось(продолжалось) где Си было частью то» вот :

Баурн, Стив. Операционная система UNIX. М.: Мир, 1986 (The Unix System S.R.Bourne Bell Laboratories 1983) - содержит:

Начальное(типо как включить терминал - база шелла, man man, / ~),

Редактор ed/vi/. :)

Оболочка(sh и программирование на нём), (*)

Язык программиривания С(оно самое + отладка(adb))

Программирование в системе UNIX(сисколы, о in|out, о процессах, о сигналах и прерываниях).

Подготовка документов (nroff и troff)

Средства обработки данных ( бд поверх шелла :) реализация команды field)

Как можно видеть в описании мало контроля версий(см стр 154 Unix универсальная среда программирования(1992гМосква Фин и Стат) Б.В.Керниган, Р.Пайк, а именно:

Историческая и библиограффическая справка. Идеей использование команд put и get мы обязаны системе управления исходными текстами (Source Code Control System - SCCS), созданной М.Рочкиндом (The Source Code Control System. - IEEE Trans. on Software Engineering, 1975). Эта система более мощная и гибкая, чем наши простые программы; она предназначенна для поддержания процесса создания больших программ. Однако основу SCCS составляет всё та же программы diff.

)

по части сетей Стивенс.

зы. info ed конец Overview:

Relevant documents are:

Unix User's Manual Supplementary Documents: 12 — 13

B. W. Kernighan and P. J. Plauger: «Software Tools in Pascal», Addison-Wesley, 1981.

google:Unix User's Manual Supplementary Documents

это собственно те тома Programming Manual'ов (не попавшие в дайджест man ) содержащие статьи проясняющие зачем и для чего от авторов тех или иных инструментов.

pps. собственно книжка Баурна это и есть Unix User'Manual Supplementary Documents с расширенной главой про sh(авторства Баурна).

ppps. если использовать UninxIs(i)DE :) то всяко /RE/ :)

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

?

Ну это же типичные мастдайные привычки иметь готовые монструозные и неповоротливые решния на каждый чих. В linux экосистеме пока принято набирать нужный функционал из мн-ва простых инструментов. Вся ява вместе с её апологетами тоже идёт путём мастдая.

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

иди на почтовые рассылки для современного положения.

Наверное, все же современное состояние интересно )

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

CXX = gcc

Эпик фэйл.

CXX = g++

$(CC) $(LDFLAGS) $(OBJS) $(LOADLIBES) -o $(PROGRAM)

CFLAGS/CXXFLAGS не используешь при сборке? Вот скрипты таких упорков и приходится править в Gentoo - то кросскомпиляция не работает, то CFLAGS-ы пользователя не уважают, то еще что...

Pinkbyte ★★★★★
()

Вроде вот интересная книга
21st Century C, 2nd Edition
Ben Klemens
На oreily можно оглавление посмотреть
http://shop.oreilly.com/product/0636920033677.do
https://www.safaribooksonline.com/library/view/21st-century-c/9781491904428/c...
http://dmkpress.com/catalog/computer/programming/c/978-5-97060-101-3/
На трекере предыдущее издание есть, но судя по оглавлению ее автор переписал.

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

Эпик фэйл

Это тебе эпик фейл. Я плюсерами не пользуюсь вообще. А эта шняга не знаю зачем осталась, надо бы удалить.

CFLAGS/CXXFLAGS не используешь при сборке?

Не нужно.

Eddy_Em ☆☆☆☆☆
()

qtcreator + cmake. Или любой другой ide/текстовый редактор. Систему сборки, естественно, тоже можно другую. Но начинать же с чего-то надо :)

gavlig ★★★
()

По мере того, как это будет нужно, тогда и читай про эти утилиты. Осваивать долго разве что CMake в силу его синтаксиса.

a1batross ★★★★★
()

При сборке программ, попадаются на глаза всякие autotools, pkg-config и т.д.

Интересна статья только про autotools имеется Over9000 страниц мелкого текста, вы совсем упоролись?

Или может кто-нить может здесь поделиться опытом?

у меня vim+mercurial. И ещё +Over9000 разнообразных костылей.

Но всякие автотулсы собственно к разработке отношения ИМХО не имеют, это уже скорее распространение (дистрибуция). Разработать программу на своих локалхостах вполне реально без autotools, и естественно без документации (например в docbook) и локализации(gettext).

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

Это тебе эпик фейл. Я плюсерами не пользуюсь вообще. А эта шняга не знаю зачем осталась, надо бы удалить.

Использовать неправильный компилятор != не использовать его вообще. Если пользуешься чем-то - делай это правильно. Или не делай вообще.

Не нужно.

Вот из-за таких чудаков на букву «м» как ты нормальные люди не могут в кросс-компиляцию.

https://bugs.gentoo.org/show_bug.cgi?id=cflags

Pinkbyte ★★★★★
()

unix это и есть экосистема для разработки на С слештред.

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

Это ты несешь какую-то херню, он все правильно сказал. Знание систем управления кодом на всех этапах жизненного цикла (от vcs до деплоя) - это как раз то, что отличает нормального разработчика от студента-первокурсника.

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

свою экосистему оставляй в заднем приводе, при себе, незачем это тащить сюда, на ЛОР

reprimand ★★★★★
()

Код пишется в vim или emacs, что больше по душе, тут единого мнения нет.

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

Для компиляции проекта принято использовать gcc или clang.

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

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

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

Ты спрашивай, спрашивай. Только не удивляйся, когда тебе на вопрос "как считать файл?" предложат через mmap действовать.

Eddy_Em ☆☆☆☆☆
()

с какой целью интересуетесь?

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