Какой компилятор лучше всего подойдет для решения данной задачи?

Здравствуйте! Поделитесь, пожалуйста, своим мнением о том, какой компилятор лучше всего выбрать для разработки простого SDI приложения под Windows. 

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

К требованиям к компилятору относятся следующие моменты:

1. Программа должна запускаться быстро, без значительной нагрузки на систему из-за загрузки крупных библиотек.
2. Исполняемый файл не должен зависеть от наличия множества DLL-файлов или других библиотек, а также не должен требовать установки дополнительных пакетов или сред на компьютере, где он будет запускаться.
3. Будет здорово, если для разработки не потребуется искать рабочую версию ключа или кряк.

У меня есть некоторый опыт программирования на C++ в Visual Studio, а также в Visual Basic (макросы), Python и Паскале в студенческие годы. Многие рекомендуют использовать Visual Studio, но, насколько я помню, ранее исполняемый файл требовал установки аналогичной версии студии на целевом компьютере. Как вы считаете?
  • 9 апреля 2025 г. 13:25
Ответы на вопрос 4
Для разработки простого SDI приложения под Windows с учетом ваших требований, я бы порекомендовал рассмотреть несколько вариантов компиляторов и инструментов разработки. Давайте разберем их.

### 1. **Visual Studio (C++)**
Visual Studio является мощным инструментом для разработки приложений под Windows, и у вас уже есть опыт работы с ним. Для того чтобы избежать зависимости от множества DLL-файлов, вы можете использовать статическую компиляцию. Для этого необходимо в настройках проекта выбрать статическую версию библиотек C++ (например, `Multi-threaded` вместо `Multi-threaded DLL`). Обратите внимание, что это может увеличить размер финального исполняемого файла. Тем не менее, Visual Studio может требовать установки дополнительных библиотек на целевом компьютере, если вы не будете использовать статическую линковку.

### 2. **Code::Blocks с MinGW**
Code::Blocks — это бесплатная интегрированная среда разработки, которая использует компилятор MinGW. MinGW обычно не требует установки дополнительных пакетов, и исполняемые файлы могут быть достаточно легковесными. В придачу, вы можете создавать статические сборки, что также ограничит зависимость от внешних библиотек. 

### 3. **Qt (C++)**
Если вы планируете сделать графический интерфейс, библиотека Qt предоставляет мощные инструменты и возможности. Платформа поддерживает статическую компиляцию, что позволяет избежать дополнительных зависимостей. Однако, важно помнить, что использование Qt требует изучения дополнительных концепций и стандартных классов, что может потребовать временных затрат.

### 4. **Go**
Если вы готовы рассмотреть другие языки программирования, язык Go.compile ваш код в единый исполняемый файл, который не требует дополнительных библиотек и имеет хорошую производительность. С точки зрения легкости развертывания, Go будет одним из лучших выборов.

### 5. **Rust**
Rust тоже предоставляет возможность компиляции в единый исполняемый файл и обеспечивает безопасность памяти. Вам не придется беспокоиться о DLL-файлах, и исполняемые файлы получаются быстрыми и эффективными.

### Рекомендации:
Если вы все же хотите остаться в рамках C++ и Visual Studio, используйте статическую линковку. Если вас интересуют менее известные трудозатраты и отсутствие зависимостей, рассмотрите использование Code::Blocks с MinGW или язык Go. Обоим вариантам требуется немного изучить, но они могут значительно упростить сборку и развертывание вашего приложения.
по крайней мере раньше, exe-шник требовал, чтобы на компьютере было установлено еще что-то (напр. та же студия такой же версии).

установки каких-то дополнительных пакетов и сред на компьютер,
Откуда вы это взяли? Чушь полнейшая. Максимум - несколько dll в придачу поставляется вместе с приложением, и всё (ну если вы, конечно, не программу управления полётами пишете).
Совсем хорошо, если для этой среды не понадобится искать рабочий кряк.
Ну уж это совсем ни в какие ворота не лезет. Какие еще кряки? Вы из 90-х что ли прилетели?

На каком языке нравится, на таком и пишете. Где? Да где угодно. Универсальные среды - Visual Studio и Visual Studio Code. Ваш пользователь не будет о них знать и в помине, и ничего устанавливать ему не придётся
Спокойно ставьте студию и пишите код на ваших плюсах. Там всё из коробки работает вполне нормально. Любые дополнительные библиотеки и внешние зависимости спокойно пакуются в одну кучу. Если, они конечно использовались. А вот если есть время и хотите приключений - то можете искать и ставить что угодно другое. Вариантов миллион - от банального асма до MinGW какого-нибудь с разработкой и кросс-сборкой в линуксе (рекомендую, кстати - очень интересный и занимательный процесс, так-то).
Delphi. Есть Delphi Community версия для бесплатного использования
Похожие вопросы