Я пытаюсь изучить программирование на С ++. Я пишу эти программы в Windows Vista, используя IDE Codeblocks, но так как я должен был изучать Linux, я хотел бы научиться писать свои программы с максимально возможной переносимостью.
Я уже загрузил компилятор mingw для использования с Codeblocks, но, пытаясь загрузить зависимости GTK, чтобы попытаться поиграться с GUI, я загрузил msys2. Я заметил, что эта программа также позволяет загружать Mingw32 и / или Mingw64. Достаточно ли завершены эти пакеты, чтобы я мог удалить свой предыдущий экземпляр mingw, или мне нужно сохранить другой пакет mingw, который я уже скачал, чтобы скомпилировать и запустить мои программы?
Да, MSYS2 — это полная среда разработки с менеджером пакетов, компиляторами и инструментами сборки. Вам не нужно устанавливать какие-либо внешние инструменты для разработки переносимого кода C ++ с MSYS2.
Имейте в виду, что MSYS2 поддерживает три разные подсистемы. Вы выбираете, какую подсистему использовать, когда нажимаете на один из трех ярлыков в меню «Пуск» для запуска оболочки. Оболочки Win64 и Win32 и их наборы инструментов для компиляции mingw-w64-x86_64-toolchain
а также mingw-w64-i686-toolchain
Позволяет писать собственные приложения Windows, которые зависят только от нескольких DLL-библиотек времени выполнения. Оболочка MSYS2 позволяет вам писать приложения, которые зависят от msys-2.0.dll, которая является веткой Cygwin и обеспечивает лучшую эмуляцию POSIX (поэтому программы, разработанные для Linux, с большей вероятностью будут работать). Если вы хотите, чтобы ваш код был переносимым, я думаю, вы хотите, чтобы он работал во всех трех этих средах. Вы также можете использовать VirtualBox или VMware для установки Linux на свою машину и разработки кода на виртуальной машине.
Найдите gcc в вашем каталоге msys-git, и вы узнаете. Обычно он отсутствует, и в этом случае вы должны сохранить полную настройку MINGW. Также, если вы хотите настоящую эмуляцию linux, используйте cygwin, а не mingw, который просто предоставляет компилятор (но не системные вызовы Linux и т. Д.)