Действительно ли стоит узнать, что GNU Делает?

Как Вы упомянули - это в основном зависит от компилятора и платформы. Для этого проверьте стандарт ANSI, , http://home.att.net/~jackklein/c/inttypes.html

Вот является тем для компилятора Microsoft: Диапазоны Типа данных .

18
задан dusoft 27 August 2009 в 13:40
поделиться

8 ответов

Make - это стандартный инструмент сборки для всего C / C ++. Многие другие подошли к делу, но даже когда они были полезными и успешными, они никогда не добивались повсеместного распространения make.

Make установлен практически на каждой Unix-подобной машине. Независимо от того, работаете ли вы с AIX, Solaris, Irix, BSD или Linux, если там установлен компилятор, также есть make.

Некоторые из «замен» (например, Automake, CMake) даже создают файлы Makefile, которые в свою очередь выполняется make.

Я бы определенно рекомендовал ознакомиться с make. Если ею занимается кто-то, кто потратил время на изучение make, это мощный инструмент, который можно использовать разными способами, даже не обязательно связанными с разработкой программного обеспечения.

Даже если вы в конечном итоге воспользуетесь другим инструментом сборки, вы сможете «переработать» уроки, извлеченные с помощью make, так как основные концепции очень похожи. А огромное количество собранных make-проектов означает, что всегда будет шанс, что вам придется вычислить существующий Makefile.

Однако одно. Сделайте это правильно с самого начала.

24
ответ дан 30 November 2019 в 07:13
поделиться

Я думаю, что причина, по которой вы не упоминаете (GNU) make, заключается в том, что это часто используется по умолчанию; если у вас есть набор инструментов GNU, у вас уже будет make. Таким образом, большинство людей, которые начинают говорить об инструментах сборки, говорят о чем-то другом.

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

8
ответ дан 30 November 2019 в 07:13
поделиться

Make популярен, потому что он используется (в основном) для исходных текстов C / C ++ в проектах Linux / * nix и намного старше, чем любой из других инструментов, которые вы упомянули, поэтому он остался испытание временем и созрело. Вроде как смола.

Если честно, я знаю только make. Эти другие инструменты, указанные выше, могут быть лучше, но во многих проектах используется просто базовый Makefile, и вам лучше знать хотя бы немного о нем. Не только для ваших собственных проектов на работе, но и для большинства проектов с открытым исходным кодом, которые вы найдете в сети.

3
ответ дан 30 November 2019 в 07:13
поделиться

Это действительно зависит от того, сколько вы будете его использовать.

Если вы много работаете с C / C ++ make-проектами, то да, я бы порекомендовал узнать больше об этом как о большом make-файле. имеет более крутую кривую обучения, чем другие упомянутые вами инструменты сборки.

Если вы не работаете с make или не работаете на других языках, таких как C #, Java или PHP, вам лучше изучить инструменты сборки, относящиеся к этим языкам .

2
ответ дан 30 November 2019 в 07:13
поделиться

Как и все инструменты, если вы вообще им пользуетесь, вам следует потратить некоторое время чтобы стать в этом разумным мастером. Кроме того, некоторые инструменты (например, CMake) генерируют файлы makefile, и однажды вам может потребоваться возиться с этими сгенерированными файлами.

GNU make имеет отличное руководство - на него, безусловно, стоит потратить час или два читая это.

1
ответ дан 30 November 2019 в 07:13
поделиться

Думаю, где вы работаете, вероятно, отличается, но я знаю, что везде, где я работал, я был бы гораздо менее ценным сотрудником, если бы я хотя бы не научился читать файлы Makefile. Даже во всех средах Windows-VisualStudio он время от времени возникает.

Например, мы только что получили задание по переносу кучи старого кода CX / UX в Windows. Старый код был собран с помощью make-файлов. Невозможно понять их старую систему, не зная, как читать эти старые make-файлы.

0
ответ дан 30 November 2019 в 07:13
поделиться

Например, Make является стандартом де-факто в системах Linux. Это очень сложный инструмент, а также очень мощный инструмент.

Он хорошо подходит для изучения, разрабатываете ли вы C или C ++, особенно если ориентируетесь на Linux / * nix.

Одна из возможностей make состоит в том, что вы можете устанавливать зависимости для того, когда нужно перестраивать файл. Например, каждый файл c или c ++ встраивается в файл .obj, и, в конце концов, все файлы .obj связаны с исполняемым файлом. Но, возможно, исполняемый файл является статически связанной библиотекой, которая связана с другим исполняемым файлом с другими файлами .obj.

Убедитесь, что время компиляции как можно меньше, потому что вы можете определить, что файл ac должен компилироваться только если он или любые зависимые файлы заголовков новее, чем файл .obj. Таким образом, любой этап компиляции или связывания выполняется только в том случае, если текущие исходные файлы для этого этапа новее, чем целевой файл.

Если вы разрабатываете, например, на C #, вам не нужна такая проверка зависимостей, потому что все .cs файлы сразу компилируются в один исполняемый файл.

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

1
ответ дан 30 November 2019 в 07:13
поделиться

Даже если вы в конечном итоге предпочтете другой инструмент сборки (лично мне нравится VS ... я знаю ...), знание make, вероятно, окажется более полезным.

Make имеет много приложений, и хотя он не всегда идеален для решения одной задачи, при работе с новыми технологиями он надежен и гибок.

0
ответ дан 30 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

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