Будет ли программа, написанная в visual studios 2017, работать в среде Linux или Unix? - PullRequest
0 голосов
/ 25 октября 2018

Я в настоящее время очень смущен чем-то.Я в настоящее время программирую на C, и я не понимаю, считается ли это средой Unix или Linux.Мне действительно нужно загрузить порт Linux или я хорошо использую визуальные студии?Проблема в том, что программа, которую я пишу, будет оценена через linux / unix.

1 Ответ

0 голосов
/ 25 октября 2018

Нет короткого ответа на ваш вопрос.Обратите внимание:

  • Набор инструментов C ++ для Visual Studio 2017 по умолчанию генерирует только Исполняемые файлы Win32 PE (*.exe, *.dll и т. Д.), Которые работают только в Windows Vista илипозже (для поддержки Windows XP требуется дополнительный компонент VS).
  • Linux не может запускать эти исполняемые файлы Win32 PE по умолчанию, хотя вы можете установить Wine, чтобы попытаться запустить их в установках Linux на том же наборе команд ЦП.Wine позволяет Linux запускать исполняемые файлы Win32 PE, а также предоставляет Windows-подобную среду выполнения (реестр, имитированный C:\Windows путь и т. Д.) Для их запуска в: https://www.winehq.org/
  • Visual Studio 2017 может выполнять кросс-компиляциюдля Linux, macOS, iOS и других операционных систем, использующих два разных подхода:
    • Предпочтительным методом Visual Studio 2017 является использование удаленных серверов сборки: в вашей локальной сети должен быть компьютер Linux или Macintosh, на котором выполняется сборкаПроцесс агента, который затем собирает программное обеспечение на этом удаленном компьютере, сохраняя набор инструментов для сборки на Linux / Mac и даже отлаживая поддержку, запустив программу на удаленном компьютере с подключенным удаленным отладчиком.
    • Другой подход заключается в использовании пользовательского makefile с использованиемнабор инструментов кросс-компиляции, работающий на вашем локальном компьютере.Вам может понадобиться среда, подобная Cygwin или MINGW.
  • За исключением Wine, все остальные опции предполагают, что ваш код C ++ действительно переносим: что вы не используете какие-либо API-интерфейсы для конкретной платформы (т.е.вы придерживаетесь стандартной библиотеки C ++) или используете специфичные для платформы API с условной компиляцией.
  • Также помните, что «Linux» - это не единая платформа: двоичный исполняемый файл, созданный для Ubuntu 16.0 x64, может не работатьна RedHat x64, и особенно не будет работать на FreeBSD или OpenBSD (которые не Linux, а форма Unix).
...