Имеет ли смысл использовать «make» при использовании кода VS?

#visual-studio-code #makefile #vscode-tasks

Вопрос:

При использовании VS-кода то, с чем вы можете работать make , также может быть выполнено tasks.json и make не предустановлено в Windows. Если вы можете заставить свою команду, использующую различные ОС, использовать VS-код, есть ли какая-либо причина для его использования make ?

Комментарии:

1. you can do with make can be done with tasks.json это неправда, вы не можете создать приложение из 100 файлов C только с tasks.json

2. @rioV8 Не могли бы вы поподробнее, пожалуйста?

3. Зачем мне уточнять, у меня есть проект со 100 файлами C , состоящий из приложения и нескольких библиотек, созданных на его основе, вы должны показать мне, как я мог бы создать это с помощью tasks.json

4. Я не знаю , как вы используете make , просто дайте мне знать часть, с которой нельзя справиться tasks.json . Я предполагаю, что вы используете много команд для сборки, но я не знаком с C .

5. итак, если вы не знакомы с C и задаете вопрос «почему», укажите, что make может делать, какие задачи могут выполнять? Если у вас есть более 1 файла C tasks.json , они бесполезны. Любое серьезное приложение имеет более 1 файла C , хотя я знаю полезное приложение 0-MQ, которое содержит всего 1 файл C . Конкурентное программирование-это несерьезное программирование

Ответ №1:

На первый взгляд, вы можете использовать либо файлы Makefile, либо tasks.json для выполнения различных сценариев оболочки. С помощью свойства dependsOn of tasks.json вы можете выполнять топологические задачи , которые также выполняет Makefile.

Все еще есть вещи, которые make делают лучше, чем tasks.json :

  1. make может проверять временные метки файлов, чтобы определить, какие файлы устарели и какие задачи ему не нужно выполнять. Возможно , вы можете сделать это с помощью различных сценариев оболочки tasks.json , но использование файлов Makefile было бы гораздо удобнее. Для очень больших проектов с большим количеством исходного кода это очень хорошая функция, так как вы можете сэкономить много времени вместо того, чтобы заново создавать 100 файлов, в которых вам не было необходимости.
  2. make содержит механизм интерфейса, поддерживающий правила суффиксов и поддержку подстановочных знаков. Я не думаю tasks.json , что поддерживаю это. Вероятно, вы можете использовать некоторые дополнительные сценарии оболочки для достижения того же самого, но это будет не так аккуратно, как make это делается.
  3. Наконец, файлы Makefile можно запускать в любой системе , которая есть make , и, следовательно, она не зависит от кода VS.

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

В моем проекте в колледже мы используем файлы Makefile. Мы работаем над кодом VS, поэтому мы настроили tasks.json сценарии так, чтобы они просто использовали команды make с указанным файлом Makefile. Вы тоже можете это сделать, если хотите.

Комментарии:

1. Ты полностью освещаешь все то, что я хотел знать. Полностью понимаю, большое вам спасибо!

2. @Такуяхара Рад помочь