LINUX.ORG.RU

Чем лучше всего собирать Pure C проекты?

 , ,


1

7

Всегда собирал с помощью своего build.sh,но когда мне понадобилось скомпилировать один из моих проектов под винду,ну вы поняли.Почитал сейчас про make.В комментариях везде пишут make это ужас,учи cmake,scons,etc.Так чем лучше всего собирать? (IDE не люблю)



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

Да, у него неудобный синтаксис и действительно отстойный парсер и вычисление выражений.

Это определенно минус.

Harald, какие-то опровержения или типичный лоровец?

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

И прям с cl.exe и проектниками под Visual Studio?

Винда не одна. Есть ещё гугловская помойка, макось, кучки линуксов и *bsd с нескучным расположением библиотек.

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

Можно и с cl.exe, но обычно с mingw. А что, проект для студии непременно обязательное условие? Но в теории можно и его, автоконф это по большому счёту шаблонизатор, пишешь шаблон проекта для студии, configure подставляет в него значения переменных и готово.

Есть ещё гугловская помойка, макось, кучки линуксов и *bsd с нескучным расположением библиотек.

С POSIX платформами уж точно проблем нет

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

пишешь

Зачем писать, когда есть целый инструмент, который сделает всё за тебя? :) Это слишком глупая потеря времени.

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

Зачем писать

Погоди, это мы ещё не дошли до «написать компилятор под целевую платформу» и «создать новую целевую платформу».

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

Такие как ты должны страдать.

Давай послушаю диванного эксперта

неизбежно будет жутко тормозить на любом железе

Конечно будет тормозить,ведь glList я придумал сам,и его нету.Как жалко((

Марш учить линейную алгебру

Мне лень,да и не надо это.Если захочу возьму math_3d.h

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

Под него куча библиотек,он простой,и я его знаю. Почему нет?Ну словлю я может быть где нибудь выход за массив,сделаю gdb run bt и все будет работать хорошо.

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

не надо это

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

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

У тебя на аватарке птица?К сожалению вынужден сообщить что в linux и lor тебе не стоит лезть.Птица обо всем говорит

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

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

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

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

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

Троль или пытаешься хоть как то себя оправдать?Может мне стоило бы на латыни назвать?Или построить математический график где птичка?

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

который воспринимает все в штыки

Вот комментарий eddy мне понравился,и человека который про corange говорил.

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

Все может быть. А может я связан с поездами Сапсан. Не хочу подробно распространяться. Лучше пущу дезинформацию.

peregrine ★★★★★
()

Если что-то простое и на один раз - make самое оно. Развесистое что-то лучше делать на cmake. В специфичных случаях - сам разберёшься.

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

А смысл? Забанят же сразу! Здесь очень много неадекватов развелось: одни С не считают кошерным, другим пыхпых подавай, третьи бубунту линуксом называют, четвертые в OpenGL шейдеры руками пишут вместо удобного GLUT (но да, gList — тормозящая штука, нужно VBA использовать)…

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

Автотулзы ужасны: мало того, что написать сценарий — тот еще трешняк, так еще и эта хрень makefile для элементарщины минут 5 генерит! И сравни с cmake: быстро и понятно.

Но, скажем, для мелкоконтроллеров я вручную makefile'ы пишу: это удобней, нежели заморачиваться с cmake, т.к. нет такой толпы зависимостей, как у десктопных утилит.

Особенно приятен cmake, когда у тебя CUDA и подобные шняги, которые могут лежать где угодно, но не в стандартной /lib или /usr/lib.

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

пробовал, когда надо было собрать 32битный apitrace, не вышло, потом подкинули полный набор дефайнов для cmake и он был похож на тот что в моём посте. И для -m32 одного cflags не достаточно, надо линкеру передать его тоже.

mittorn ★★★★★
()

Собираю питоном, наваял себе подходящий скрипт. Пробовал SCons , но не осилил документацию ):

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

Ну я не просто с потолка взял. Мне хватало, на выходе получалась 32-битная библиотека. А тебе явно оверкил какой-то посоветовали. Видимо, на случай кривых CMakeLists.txt, которые переопределяют флаги, не заботясь о предыдущих значениях.

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

У CMake много модулей.

Стрёмно то, что сначала разрабы CMake сами мейнтейнили модули для популярных библиотек, типа SDL, OpenGL и пр., а потом такие «пок-пок-пок» и, мол, если хотите, чтобы ваша библиотека находилась с помощью CMake, то вы сами должны мейнтейнить CMake-модули.

В итоге, все разрабы библиотек клали на этот CMake, к примеру, всякие там SDL2_mixer, SDL2_image, Vorbis, Yaml, JSON-C и пр. А мне, как пользователю CMake, приходиться ходить с огромным мешком для мусора по всяким сомнительным сайтам и репозиториям и собирать самописные модули от Васянов к этим либам. На полный мешок целых два дня уходит.

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

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

и это всё лишь бы автотулзы не использовать :P

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

И действительно. Давно же я этим занимался...

Сейчас вообще предпочитаю с графикой не иметь дела. На крайняк — веб-морду слепить.

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

Если для библиотек нет pc-файлов, то для autotools тоже надо где-то искать скрипты или велосипедить. А если pc-файлы есть, то библиотека в CMake легко подцепляется.

Так что тут разницы нет.

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

Я хотел написать сразу, что готовые функции для поиска библиотек есть и в CMake. Не написал, потому что использование этих функций и есть то самое велосипедостроение, о котором писали выше. Если ты хочешь нормальный поиск библиотеки, придётся искать её в нескольких местах, искать пути к заголовкам, добавлять опции для альтернативных мест установки, и всё тому подобное. Без этого получится бяка в любой системе сборки.

Но самое страшное это то, что даже если ты таки напишешь макросы на m4 для autotools, не так много желающих их сопровождать. Я видел, как пакет выбросили из репозитория по этой причине. Сборка сломалась, и никто не смог разобраться, как её починить.

i-rinat ★★★★★
()

Make — сценарий сборки. Грубо говоря, ты заводишь несколько целей и описываешь команды, которые соберут твой проект. Синтаксис у него довольно странный, но руками мейкфайлы мало кто пишет, так что это не проблема.

CMake — генератор проектных файлов, в том числе и мейкфайлов. С его помощью ты просто скармливаешь список файлов, а на выходе получаешь заданный сценарий сборки. Очень мощная штука, к тому же кроссплатформенная.

Рекомендую перевести на CMake, поскольку он выступает более высоким уровнем абстракции от системы/окружения

XMs ★★★★★
()

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.