Visual studio code gcc linux

Remote Development with Linux

Linux is a highly variable environment and the large number of server, container, and desktop distributions can make it difficult to know what is supported. Visual Studio Code Remote Development has prerequisites for the specific host / container / WSL distribution you will be connecting to.

The extensions are known to work when connecting to recent stable/LTS version of:

  • Ubuntu 64-bit x86, ARMv8l (AArch64) (16.04+, IoT 18.04+)
  • Debian 64-bit x86, ARMv8l (AArch64) (Stretch/9+)
  • Raspbian ARMv7l (AArch32) 32-bit (Stretch/9+)
  • CentOS / RHEL 64-bit x86 (7+)
  • Alpine Linux 64-bit x86 containers or WSL hosts (3.9+) in Remote — Containers, Remote — WSL

The following non-Linux SSH hosts are also supported:

  • Windows 10 / Server 2016/2019 SSH hosts (1803+) using the official OpenSSH Server and enabling remote.SSH.useLocalServer in VS Code settings.
  • macOS 10.14+ (Mojave) SSH hosts with Remote Login enabled.

However, if you are using a non-standard configuration or downstream distribution of Linux, you may run into issues. This document provides information on requirements as well as tips to help you get up and running even if your configuration is only community-supported.

Note that other extensions may have dependencies beyond those listed here. Some extensions also contain compiled native code that may not work on Alpine Linux, or ARMv7 (AArch32), or ARMv8 (AArch64). These platforms are considered in «preview» for this reason. If you encounter an issue that only occurs with a particular extension, contact the extension authors for information on their native dependencies.

Local Linux prerequisites

If you are running Linux locally, the VS Code prerequisites drive most of the requirements.

In addition, specific Remote Development extensions have further requirements:

  • Remote — SSH: ssh needs to be in the path. The shell binary is typically in the openssh-client package.
  • Remote — Containers: Docker CE/EE 18.06+ and Docker Compose 1.21+. Follow the official install instructions for Docker CE/EE for your distribution. If you are using Docker Compose, follow the Install Docker Compose directions as well. (Note that the Ubuntu Snap package is not supported and packages in distributions may be out of date.) docker and docker-compose must also be in the path. However, Docker does not need to be running if you are using a remote host.

Remote host / container / WSL Linux prerequisites

Platform prerequisites are primarily driven by the version of the Node.js runtime (and by extension the V8 JavaScript engine) shipped in the server component automatically installed on each remote endpoint. This server also has a set of related native node modules that need to be compiled and tested for each target. 64-bit x86 glibc-based Linux distributions currently provide the best support given these requirements.

You may encounter issues with certain extensions with native dependencies with ARMv7l (AArch32) / ARMv8l (AArch64) glibc-based hosts, containers, or WSL and 64-bit x86 musl-based Alpine Linux. For ARMv7l/ARMv8l, extensions may only include x86_64 versions of native modules or runtimes in the extension. For Alpine Linux, included native code or runtimes may not work due to fundamental differences between how libc is implemented in Alpine Linux ( musl ) and other distributions ( glibc ). In both these cases, extensions will need to opt-in to supporting these platforms by compiling / including binaries for these additional targets. Please raise an issue with the appropriate extension author requesting support if you encounter an extension that does not work as expected.

Читайте также:  Realtek rtl8111 linux driver
Distribution Base Requirements Remote — SSH Requirements Notes
General kernel >= 3.10, glibc >=2.17, libstdc++ >= 3.4.18, Python 2.6 or 2.7, tar OpenSSH server, bash , and curl or wget Run ldd —version to check the glibc version. Run strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX to see if libstdc++ 3.4.18 is available.
Ubuntu 16.04+, Debian 8+, Raspbian Stretch/9+ and downstream distributions libc6 libstdc++6 python-minimal ca-certificates tar openssh-server bash and curl or wget Requires kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18. Debian glibc libgcc libstdc++ python ca-certificates tar openssh-server bash and curl or wget Requires kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18. RHEL / CentOS musl libgcc libstdc++ . musl >= 1.1.18, glibc not required. Not yet supported. Supported in Remote — Containers and Remote — WSL. Extensions installed in the container may not work due to glibc dependencies in extension native code.
openSUSE Leap / SUSE Linux Enterprise 15+ glibc libgcc_s1 libstdc++6 python ca-certificates gzip tar curl or wget Requires kernel >= 3.10, glibc, libstdc++6

Tips by Linux distribution

The following is a list of distributions and any base requirements that may be missing. End-of-life versions of distributions are not included.

  • ✅ = Working
  • ⚠️ = Working, but see note for limitations
  • 🔬 = Experimental
  • 🛑 = Unsupported, but has workaround
  • ❌ = Unsupported
Server Distribution Docker Image Missing libraries Notes / additional steps
⚠️ Alpine Linux 3.10 (64-bit) alpine:3.10 libgcc libstdc++ Supported in Remote — Containers and Remote — WSL only. Some extensions installed in the container may not work due to glibc dependencies in extension native code.
✅ CentOS 7 Server (64-bit) centos:7
🛑 CentOS 6 Server (64-bit) centos:6 glibc >= 2.17, libstdc++ >= 3.4.18 Requires a workaround.
✅ Debian 10 Server (64-bit) debian:10
✅ Debian 9 Server (64-bit) debian:9
✅ openSUSE Leap Server 15 (64-bit) opensuse/leap:15 Docker image is missing tar and gzip .
✅ openSUSE Leap Server 42.3 (64-bit) opensuse/leap:42.3 Docker image is missing tar and gzip .
✅ Oracle Linux 7 (64-bit) oraclelinux:7
🛑️ Oracle Linux 6 (64-bit) oraclelinux:6 glibc >= 2.17, libstdc++ >= 3.4.18. Docker image is missing tar . Requires a workaround.
⚠️ Raspbian Stretch/9 (ARMv7l 32-bit) Some extensions may not work when installed on an ARMv7l host due to extension x86 native code. Remote — Containers does support connecting to containers on an ARM host.
✅ RedHat Enterprise Linux 7 (64-bit)
🛑 RedHat Enterprise Linux 6 (64-bit) glibc >= 2.17, libstdc++ >= 3.4.18 Requires a workaround.
✅ SUSE Linux Enterprise Server 15 (64-bit) Docker image is missing tar and gzip .
✅ SUSE Linux Enterprise Server 12 (64-bit) Docker image is missing tar and gzip .
❌ SUSE Linux Enterprise Server 11 (64-bit) glibc >= 2.17, libstdc++ >= 3.4.18 Might work compiling glibc from source, but untested.
⚠️ Ubuntu 18.04 IoT (ARMv8l 64-bit) Some extensions may not work when installed on an ARMv8l host due to extension x86 native code. Remote — Containers does support connecting to containers on an ARM host.
✅ Ubuntu Server 20.04 (64-bit) ubuntu:20.04
✅ Ubuntu Server 19.04 (64-bit) ubuntu:19.04
✅ Ubuntu Server 18.04 (64-bit) ubuntu:18.04
✅ Ubuntu Server 16.04 (64-bit) ubuntu:16.04
✅ Ubuntu Server 14.04 (64-bit) ubuntu:14.04

Updating glibc and libstdc++ on RHEL / CentOS 6

RHEL / CentOS 6 ships with glibc 2.12 and libstdc++ 3.4.13. Unfortunately, this does not meet the requirements for Remote Development. RHEL / CentOS 6 goes out of support in 2020, so we strongly recommend upgrading to RHEL / CentOS 7 or higher.

However, as a workaround, you can either build glibc manually or use the following script to install updated binaries. The bash script below will upgrade these libraries without having to build them. It is adapted from information in this article, this gist, and this Fedora copr project. The article also includes instructions for manually building glibc if you would prefer not to use the binaries from the article.

Do not run this script on anything mission critical without a rollback strategy since it does update libraries that other applications depend on.

For servers, run the following script and restart the server so the updates take effect.

In a container environment, you can add similar contents to a Dockerfile:

Источник

Загрузка, установка и настройка рабочей нагрузки Linux

Проекты Linux поддерживаются в Visual Studio версии 2017 и выше. Чтобы увидеть документацию для этих версий, установите в данной статье селектор Версия Visual Studio в Visual Studio 2017 или Visual Studio 2019. Он находится в верхней части оглавления на этой странице.

Вы можете использовать интегрированную среду разработки Visual Studio в Windows для создания, редактирования и отладки проектов C++, которые выполняются в удаленной системе Linux, на виртуальной машине или в подсистеме Windows для Linux.

Вы можете работать с имеющейся базой кода, где CMake не требуется преобразовывать в проект Visual Studio. Если база кода является кроссплатформенной, в Visual Studio можно создавать решения как для Windows, так и для Linux. Например, с помощью Visual Studio можно редактировать, выполнять сборку и отлаживать свой код в Windows. Затем можно быстро перенацелить проект для Linux на сборку и отладку в среде Linux. Файлы заголовков Linux автоматически копируются на ваш локальный компьютер. Visual Studio использует их для обеспечения полной поддержки технологии IntelliSense (завершение операторов, переход к определению и т. д.).

Чтобы использовать любой из этих сценариев, требуется рабочая нагрузка Разработка для Linux на C++ .

Установка Visual Studio

В поле поиска Windows введите «Visual Studio Installer»:

Найдите установщик в разделе Приложения и дважды щелкните его. Когда откроется установщик, щелкните Изменить и перейдите на вкладку Рабочие нагрузки. Прокрутите вниз до раздела Другие наборы инструментов и выберите рабочую нагрузку Разработка для Linux на C++ .

Если вы используете внедренную платформу или платформу Интернета вещей, перейдите в панель Сведения об установке, которая находится справа. В разделе Разработка для Linux на C ++ разверните узел Необязательные компоненты и выберите нужные компоненты. Поддержка CMake для Linux включена по умолчанию.

Для продолжения установки нажмите кнопку Изменить.

Варианты создания среды Linux

Если у вас нет компьютера Linux, можно создать виртуальную машину Linux в Azure. Дополнительные сведения см. в разделе Краткое руководство. Создание виртуальной машины Linux на портале Azure.

В Windows 10 можно установить и настроить использование определенного дистрибутива Linux в подсистеме Windows для Linux (WSL). См. подробнее руководство по установке подсистемы Windows для Linux в Windows 10. Если не удается получить доступ к Microsoft Store, можете вручную скачать пакеты дистрибутивов WSL. WSL — это удобная консольная среда, но ее не рекомендуется использовать для графических приложений.

Для проектов Linux в Visual Studio необходимо установить следующие зависимости в удаленной системе Linux или WSL:

  • Компилятор — Visual Studio 2019 полностью поддерживает GCC и Clang.
  • gdb — Visual Studio автоматически запускает gdb в системе Linux и использует интерфейс отладчика Visual Studio для обеспечения всех возможностей отладки в Linux.
  • rsync и zip — благодаря включению rsync и zip Visual Studio может извлекать файлы заголовков из системы Linux в файловую систему Windows для использования технологией IntelliSense.
  • make
  • openssh-server (только удаленные системы Linux) — Visual Studio подключается к удаленным системам Linux через безопасное SSH-соединение.
  • CMake (только для проектов CMake) — вы можете установить статически связанные двоичные файлы CMake для Linux.
  • ninja-build (только для проектов CMake) — Ninja является генератором по умолчанию для конфигураций Linux и WSL в Visual Studio 2019 версии 16.6 или более поздней версии.

В следующих командах предполагается, что вы используете g++ вместо clang.

Для проектов Linux в Visual Studio необходимо установить следующие зависимости в удаленной системе Linux или WSL:

  • gcc — Visual Studio 2017 полностью поддерживает GCC.
  • gdb — Visual Studio автоматически запускает gdb в системе Linux и использует интерфейс отладчика Visual Studio для обеспечения всех возможностей отладки в Linux.
  • rsync и zip — благодаря включению rsync и zip Visual Studio может извлекать файлы заголовков из системы Linux в файловую систему Windows для использования технологией IntelliSense.
  • make
  • openssh-server — Visual Studio подключается к удаленным системам Linux через защищенное SSH-соединение.
  • CMake (только для проектов CMake) — вы можете установить статически связанные двоичные файлы CMake для Linux.

Установка Linux: Использование Ubuntu в WSL

Если вы используете WSL, для сборки и отладки не требуется добавлять удаленное подключение или настраивать SSH. Использование zip и rsync является обязательным для автоматической синхронизации заголовков Linux в Visual Studio и включения поддержки Intellisense. ninja-build требуется только для проектов CMake. Если необходимые приложения отсутствуют, их можно установить с помощью следующей команды:

Использование Ubuntu в удаленных системах Linux

В целевой системе Linux должны быть установлены openssh-server, g++ , gdb и make. ninja-build требуется только для проектов CMake. Должна быть запущена управляющая программа ssh. Использование zip и rsync необходимо для автоматической синхронизации удаленных заголовков на локальном компьютере, чтобы обеспечить поддержку Intellisense. Если этих приложений еще нет, их можно установить следующим образом.

В командной строке оболочки на компьютере Linux выполните следующую команду:

Для выполнения команды sudo вам может быть предложено ввести пароль учетной записи root. Введите его и продолжите. После завершения будут установлены требуемые службы и средства.

Запустите службу ssh на компьютере Linux, выполнив следующую команду:

Эта команда запускает службу в фоновом режиме и в состоянии готовности к принятию подключений.

Использование Fedora в WSL

В Fedora используются установщик пакетов dnf. Чтобы скачать g++ , gdb, make, rsync, ninja-build и zip, выполните следующую команду:

Использование zip и rsync является обязательным для автоматической синхронизации заголовков Linux в Visual Studio и включения поддержки Intellisense. ninja-build требуется только для проектов CMake.

Использование Fedora в удаленных системах Linux

На целевой машине под управлением Fedora используются установщик пакетов dnf. Чтобы скачать openssh-server, g++ , gdb, make, ninja-build, rsync и zip, а затем перезапустить управляющую программу ssh, сделайте следующее: ninja-build требуется только для проектов CMake.

В командной строке оболочки на компьютере Linux выполните следующую команду:

Для выполнения команды sudo вам может быть предложено ввести пароль учетной записи root. Введите его и продолжите. После завершения будут установлены требуемые службы и средства.

Запустите службу ssh на компьютере Linux, выполнив следующую команду:

Эта команда запускает службу в фоновом режиме и в состоянии готовности к принятию подключений.

Следующие шаги

Теперь вы можете создать или открыть проект Linux, а также настроить его для выполнения в целевой системе. Дополнительные сведения можно найти в разделе

Источник

Читайте также:  How to block windows update in windows 10
Оцените статью