Как установить библиотеку в visual studio code
Перейти к содержимому

Как установить библиотеку в visual studio code

  • автор:

Использование библиотек и компонентов

В проектах C++ часто требуется вызывать функции или обращаться к данным в двоичных файлах, таких как статические библиотеки (LIB-файлы), библиотеки DLL, компоненты среды выполнения Windows, компоненты COM или сборки .NET. В этих случаях необходимо настроить проект таким образом, чтобы он мог находить нужные двоичные файлы во время сборки. Конкретный способ сделать это зависит от типа вашего проекта, типа двоичного файла, а также от того, был ли этот двоичный файл собран в том же решении, что и ваш проект.

Использование скачанных библиотек с помощью vcpkg

Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов vcpkg, то приведенные ниже инструкции можно пропустить. Дополнительные сведения см. в разделе:

  • vcpkg в проектах CMake
  • Установка и использование пакетов с CMake в Visual Studio
  • vcpkg в проектах MSBuild
  • Руководство. Установка и использование пакетов с MSBuild в Visual Studio

Использование статических библиотек

Если проект статической библиотеки был создан в том же решении:

  1. #include файл заголовка для статической библиотеки с помощью кавычки. В типовом решении путь начинается с ../ . При поиске вы можете использовать предложения технологии IntelliSense.
  2. Добавьте ссылку на проект статической библиотеки. Щелкните правой кнопкой мыши элемент Ссылки в узле проекта приложения в обозревателе решений и выберите Добавить ссылку.

Если статическая библиотека не входит в состав решения:

  1. Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
  2. На странице свойств Каталоги VC++ добавьте в раздел Пути библиотек путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
  3. На странице свойств компоновщика > добавьте имя LIB-файла в дополнительные зависимости.

Библиотеки динамической компоновки

Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.

Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.

  1. Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. Дополнительные сведения см. в разделе «Порядок поиска библиотеки динамических ссылок».
  2. Выполните шаги с 1 по 3 для статических библиотек, чтобы задать пути к заголовкам и LIB-файлу.

COM-объекты

Если в собственном приложении C++ требуется использовать COM-объект и этот объект зарегистрирован, вам достаточно вызвать функцию CoCreateInstance и передать в нее CLSID объекта. Система выполнит поиск объекта в реестре Windows и загрузит его. В проекте C++/CLI COM-объект можно использовать таким же образом. Кроме того, он может использовать его, добавив ссылку на нее из списка добавления ссылок > COM и используя ее через вызываемую оболочку среды выполнения.

Сборки .NET с компонентами среды выполнения Windows

В проектах универсальной платформы Windows (UWP) или C++/CLI для использования сборок .NET или компонентов среды выполнения Windows можно добавить ссылку на сборку или компонент. В узле Ссылки проекта универсальной платформы Windows (UWP) или C++/CLI представлены ссылки на часто используемые компоненты. Щелкните правой кнопкой мыши узел Ссылки в Обозревателе решений, чтобы открыть диспетчер ссылок и просмотреть доступные в системе компоненты. Нажмите кнопку Обзор, чтобы перейти к папке, в которой находится нужный вам пользовательский компонент. Поскольку сборки .NET и компоненты среды выполнения Windows содержат встроенные сведения о типах, для просмотра их методов и классов можно щелкнуть правой кнопкой мыши и выбрать команду Просмотреть в обозревателе объектов.

Свойства ссылки

Каждый тип ссылки имеет свойства. Свойства можно просмотреть, выбрав ссылку в обозревателе решений и нажав клавиши Alt + ВВОД. Также можно щелкнуть ссылку правой кнопкой мыши и выбрать пункт Свойства. Одни свойства доступны только для чтения, другие можно изменять. Тем не менее обычно эти свойства не требуется изменять вручную.

Свойства ссылки ActiveX

Свойства ссылки ActiveX доступны только для компонентов COM. Данные свойства отображаются только тогда, когда в панели Ссылки выбран компонент COM. Эти свойства нельзя изменить.

  • Управление полным путем Отображает путь к каталогу элемента управления, на который указывает ссылка.
  • GUID элемента управления Отображает GUID для элемента управления ActiveX.
  • Версия элемента управления Отображает версию элемента управления ActiveX, на который указывает ссылка.
  • Имя библиотеки типов Отображает имя библиотеки типов, на которую указывает ссылка.
  • Средство программы-оболочки Отображает средство, которое используется для создания сборки взаимодействия из указанной библиотеки COM или элемента управления ActiveX.

Свойства ссылки на сборку (C++/CLI)

Свойства ссылки на сборку доступны только для ссылок на сборки .NET Framework в проектах C++/CLI. Данные свойства отображаются только тогда, когда в панели Ссылки выбрана сборка .NET Framework. Эти свойства нельзя изменить.

  • Относительный путь Отображает относительный путь от каталога проекта к сборке, на которую указывает ссылка.

Свойства сборки

Следующие свойства доступны для различных типов ссылок. Они позволяют задавать способ построения со ссылками.

  • Копировать локальные Указывает, следует ли автоматически копировать сборку, на которую указывает ссылка, в целевое расположение во время сборки.
  • Копировать локальные вспомогательные сборки (C++/CLI) Указывает, следует ли автоматически копировать вспомогательные сборки ссылочной сборки в целевое расположение во время сборки. Используется, только если для параметра Копировать локальные задано значение true .
  • Выходные данные ссылочной сборки Указывает, что эта сборка используется в процессе сборки. true означает, что эта сборка используется в командной строке компилятора во время выполнения сборки.

Свойства ссылок проектов на проекты

Следующие свойства определяют ссылку проекта на проект из проекта, выбранного в панели Ссылки, на другой проект в том же решении. Дополнительные сведения см. в статье Управление ссылками в проекте.

  • Компоновать зависимости библиотек Если это свойство имеет значение True, система проектов установит в зависимом проекте связь с LIB-файлами, создаваемыми независимым проектом. Обычно устанавливается значение True.
  • Идентификатор проекта Уникальный идентификатор независимого проекта. Значение свойства — это GUID внутренней системы, который невозможно изменить.
  • Использовать входные данные зависимостей библиотек Если это свойство имеет значение False, система проектов не установит в зависимом проекте связь с OBJ-файлами для библиотеки, созданной независимым проектом. Таким образом, это значение отключает инкрементную компоновку. Обычно указывается значение False, так как при наличии множества независимых проектов сборка приложения может занять длительное время.

Свойства ссылки только для чтения (COM и .NET)

Следующие свойства существуют в ссылках на компоненты COM и сборки .NET, и их нельзя изменить.

  • Имя сборки Отображает имя сборки для сборки, на которую указывает ссылка.
  • Язык и региональные параметры Отображает язык и региональные параметры выбранной ссылки.
  • Description Отображает описание выбранной ссылки.
  • Полный путь Отображает путь к каталогу сборки, на которую указывает ссылка.
  • Identity Для сборок .NET Framework отображает полный путь. Для компонентов COM отображает GUID.
  • Подпись Отображает метку ссылки.
  • Имя Отображает имя ссылки.
  • Токен открытого ключа Отображает токен открытого ключа для идентификации сборки, на которую указывает ссылка.
  • Строгое имяtrue , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.
  • Версия Отображает версию сборки, на которую указывает ссылка.

Настройка рабочей среды

Установка VS Code не представляет сложностей. Достаточно скачать установочный файл со страницы загрузок и запустить его.

Теперь настроим VS Code для удобной работы с языками C++ и Python.

Расширения VS Code

Установите следующие расширения VS Code:

Выбор интерпретатора python

При начале работы с кодом python (файлом с расширением .py ) VS Code предложит выбрать интерпретатор python, который будет использоваться для подсветки кода, проверки синтаксиса и вывода подсказок:

vscode-python-interpreter

Можете, например, выбрать интерпретатор из недавно созданного окружения nsu.

Создадим файл test.py , содержащий одну строку:

print('Hello, world!') 

Исполнить этот скрипт можно, открыв консоль в VS Code с помощью сочетания клавиш Ctrl+J и набрав в ней

python test.py

В правом верхнем углу окна находится кнопка с зеленым треугольником ▷, нажатие на которую приводит к тому же результату:

vscode-python-hello-world

Настройка работы с GCC

Создайте файл test.cpp , содержащий следующий код:

#include int main()  std::cout  <"Hello, world!"  <std::endl; return 0; > 

Скомпилируем его с помощью компилятора GCC и командной строки. Откройте консоль в VS Code ( Ctrl+J ) и исполните команду

> g++ test.cpp

Компилятор создал исполняемый файл a.exe . Запустите его:

> .\a.exe Hello, world!

Работает. Настроим теперь VS Code для автоматизации этого действия. Выберите в меню пункт Terminal -> Configure Default Build Task. :

vscode-cpp-default-build-task

Выберите из выпавшего списка пункт g++.exe . В результате будет сгенерирован файл .vscode/tasks.json подобный такому:

 "version": "2.0.0", "tasks": [  "type": "shell", "label": "C/C++: cpp.exe build active file", "command": "D:\\mingw\\mingw32\\bin\\g++.exe", "args": [ "-g", "$", "-o", "$\\$.exe" ], "options":  "cwd": "$" >, "problemMatcher": [ "$gcc" ], "group":  "kind": "build", "isDefault": true > > ] > 

Теперь при нажатии клавиш Ctrl+Shift+B или выборе пункта меню Terminal -> Run Build Task будет выполняться компиляция открытого файла. Для файла test.cpp будет создан исполняемый файл test.exe .

Работа с CMake

Откройте новую рабочую директорию VS Code, создайте в ней файл main.cpp , содержащий следующий код:

#include int main()  std::cout  <"Hello, world!"  <std::endl; return 0; > 

и файл CMakeLists.txt со следующим содержанием:

cmake_minimum_required(VERSION 3.0.0) add_executable(test main.cpp) 

Эти два файла составляют минимальный CMake-проект. Выполним сначала сборку CMake-проекта через консоль: создайте в рабочей директории поддиректорию build , в которой будет осуществляться сборка, и перейдите в неё:

> mkdir build; cd build

Выполните настройку проекта и запустите сборку:

> cmake -G "MinGW Makefiles" .. > cmake --build .

В первой команде мы указали, что сборка будет осуществляться с помощью MinGW и что файлы проекта расположены в родительской директории (путь .. ). Вторая команда осуществляет сборку в текущей директории (путь . ). В директории build должен появиться исполняемый файл test.exe .

Расширение VS Code для работы с CMake позволяет автоматизировать сборку проекта. Выберите рабочую директорию VS Code (комбинация клавиш Ctrl+K+O ), содержащую файлы main.cpp и CMakeLists.txt . Наберите комбинацию клавиш Ctrl+Shift+P и в строке сверху наберите команду >CMake: Configure . Это запустит настройку инструментов CMake. После завершения настройки в нижней части окна появятся инструменты управления сборкой:

cmake-example-project

Кнопку «Сборка» запускает сборку, а кнопка ▷ — исполняемый файл.

Если автоматическая настройка CMake привела к ошибке, то, вероятно, инициализация CMake выполнилась без параметра -G «MinGW Makefiles» . В этом случае выполните эту команду в консоли, как показано выше. Достаточно выполнить это действие один раз, после чего конфигурация этого и других проектов будет выполняться верно.

Работа с git

Покажем как можно работать с git-репозиторием через VS Code. Выполните fork репозитория задания Hello, Classroom на GitHub:

github-fork

Это действие создает новый репозиторий в Вашем аккаунте. Разрешите автоматическое тестирование решения, нажав на большую зеленую кнопку во вкладке Actions:

github-actions

Новый репозиторий необходимо клонировать на Вашу локальную систему. Удобнее всего это делать с помощью протокола ssh. Для этого сначала необходимо включить OpenSSH Client, который по умолчанию выключен.

Взаимодействие с GitHub репозиторием будет происходить по протоколу ssh с помощью техники шифрования с открытым ключом. Создать пару из приватного и публичного ключа можно в консоли:

>ssh-keygen Generating public/private rsa key pair.

По умолчанию сгенерированные ключи будут расположены в директории ~\.ssh . Файл с публичным ключом называется id-rsa.pub . Публичный ключ нужно добавить на GitHub. Для этого откройте раздел SSH and GPG keys в меню Settings и нажмите на кнопку New SSH key :

github-ssh-key

Заполните открывшуюся форму. В поле Key нужно скопировать содержимое файла id-rsa.pub . Проследите, чтобы при копировании не появились лишние переносы строк. Весь ключ должен быть расположен в одной строке.

Теперь мы готовы к клонированию репозитория. Выберите на компьютере директорию, в которой Вы будете работать с заданиями курса и перейдите в неё. Откройте страницу репозитория hello-classroom в Вашем аккаунте GitHub и скопируйте строку для клонирования через ssh:

github-clone

Выполните в консоли команду git clone :

> git clone git@github.com:fakestud/hello-classroom.git Cloning into 'hello-classroom'. remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (8/8), done. remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0 Receiving objects: 100% (15/15), done 

Строка git@github.com:fakestud/hello-classroom.git есть скопированная выше строка. Репозиторий был клонирован в директорию hello-classroom . Выберите её в качестве рабочей директории VS Code. Прочитайте файл README.md , содержащий инструкции по решению задания. После решения задания выполните локальную проверку:

> conda activate nsu > pip install -r .\requirements.txt > g++ -std=c++17 main.cpp -o a.out > test_cmd tests/ .\a.out Running 1 tests on 4 CPUs. test1 Command: .\a.out Success All 1 tests passed.

Тесты пройдены успешны. Значит, мы готовы к синхронизации репозитория GitHub с нашей локальной версией. В командной строке для этого достаточно выполнить следующие команды:

git add main.cpp git commit -m "Task solved" git push -u origin master

Редактор VS Code позволяет выполнить эти действия через графический интерфейс. VS Code отслеживает изменения локальной версии репозитория. Откройте вкладку контроля версий слева и посмотрите на список изменившихся файлов. В нашем случае это должен быть только файл main.cpp . Выполните команду git add , нажав на кнопку +:

vscode-git-add

Затем команду git commit , нажав на кнопку ✓ и введя комментарий в текстовом поле:

vscode-git-commit

Наконец, выполните команду git push :

Источники

  • First-Time Git Setup
  • VS Code: User and Workspace Settings
  • VS Code: Using GCC with MinGW
  • VS Code: Get started with CMake Tools on Linux
  • Git in Visual Studio Code
  • Must-have плагины и несколько полезностей для С\С++ разработки в VS Code
  • Памятка пользователям ssh
  • Введение
  • Настройка рабочей среды
    • Установка и настройка VS Code
    • Что такое Git?
    • Установка Git for Windows
    • Установка компилятора
    • Установка CMake
    • Установка Miniconda3
    • Установка библиотеки GoogleTest
    • Как отправлять решение задач

    maksbotan / readme.md

    Наш курс включает в себя решения задач на практических занятиях, а также домашние задания. Для этого вам понадобится ноутбук с Python.

    Если у вас уже установлен Python и вы уверены, что умеете им пользоваться, переходите сразу к разделам «Установка нужных библиотек» и «Дополнительные материалы».

    Если у вас Mac — попробуйте адаптировать эту инструкцию для себя или обратитесь за помощью к организаторам курса. Если же у вас Linux, то вы скорее всего сами всё знаете. Если что-то всё же не получается, попросите помощи в нашем чате.

    Мы будем пользоваться Python 3.8. Скачать его можно по этой ссылке. Запустите скачанный файл для установки.

    Рекомендуем на первом экране нажать «Customize installation»:

    py1

    и на следующем выбрать «Install for all users» и «Add Python to environment variables»:

    py2

    Теоретически, код на Python можно писать в любом текстовом редакторе, включая Блокнот. Однако решать задачу будет гораздо удобнее если установить специально для этого предназначенный.

    Мы рекомендуем пользоваться Visual Studio Code. Скачать можно здесь.

    Настройка VS Code

    Нам понадобится установить расширение VS Code, включающее поддержку Python. Для этого нажмите нижнюю кнопку в левой панели (состоит из 4 квадратиков), введите в строке поиска «Python», выберите первое расширение (как на картинке ниже) и нажмите зеленую кнопку Install.

    image

    Создайте новый файл («File» -> «New File») и сохраните его с расширением .py , например hello.py .

    Если всё установлено правильно, в левом нижнем углу вы увидите надпись «Python 3.8.7 64-bit». Это значит, что VS Code «увидел» Python, который вы установили.

    Запуск ваших программ

    Напишите в этом новом файле такой код:

    print("Hello, world!")

    Теперь нажмите в любом месте правой кнопкой мыши и выберите пункт «Run Python File in Terminal». Внизу экрана вы увидите окно Terminal, в котором будет напечатана строка » Hello, world! «.

    Установка нужных библиотек

    В наших заданиях нам понадобятся библиотеки numpy и biopython . Самый простой способ их установить — перейти в окно Terminal в VS Code и набрать там команду

    pip3 install --user numpy biopython 

    Если эта команда не выведет никаких ошибок (красным текстом), значит вы готовы к нашему курсу!

    Если вы ещё никогда не писали на Python или просто не уверены в своих знаниях, рекомендуем несколько хороших материалов.

    • Самоучитель Python, в котором можно делать упражнения прямо в окна браузера: https://pythontutor.ru
    • Небольшая книга-самоучитель по языку: https://pythonworld.ru/samouchitel-python
    • И бесплатный видео курс по Python от Института Биоинформатики: https://stepik.org/course/67/promo

    Руководство. Установка и использование пакетов с CMake в VS Code

    В этом руководстве показано, как создать программу C++ Hello World, которая использует библиотеку fmt с CMake, vcpkg и Visual Studio Code. Вы установите зависимости, настройте, создадите и запустите простое приложение.

    Необходимые компоненты

    • VS Code
    • Компилятор C++.
    • Windows 7 или более поздней версии

    В этом примере используется компилятор MSVC C++ в рабочей нагрузке разработки Visual Studio C++.

    1. Настройка vcpkg

    1. Клонирование репозитория Первым шагом является клонирование репозитория vcpkg из GitHub. Репозиторий содержит скрипты для получения исполняемого файла vcpkg и реестра курируемых библиотек с открытым исходным кодом, поддерживаемых сообществом vcpkg. Для этого выполните следующую команду:
    git clone https://github.com/microsoft/vcpkg.git 
    cd vcpkg && bootstrap-vcpkg.bat 
    cd vcpkg; .\bootstrap-vcpkg.bat 
    cd vcpkg && ./bootstrap-vcpkg.sh 

    2. Установка расширений VS Code

    Перейдите в представление расширения и установите расширение C++. Это позволяет использовать IntelliSense C++ и навигацию по коду.

    installing C++ VS Code Extension

    Снимок экрана: представление расширения VS Code с расширением C++

    Установите расширение средств CMake. Это обеспечивает поддержку CMake в VS Code.

    installing CMake Tools VS Code Extension

    Снимок экрана: представление расширения VS Code с расширением CMake Tools

    3. Настройка vcpkg

    1. VCPKG_ROOT Настройте переменную среды.

    Открытие нового терминала в VS Code: терминал > Новый терминал

    Выполните следующие команды:

    $env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH" 

    setting up vcpkg environment variables

    Снимок экрана: настройка VCPKG_ROOT и добавление его в PATH в терминале VS Code.

    set VCPKG_ROOT="C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH% 
    VCPKG_ROOT=/c/path/to/vcpkg PATH=$PATH:$VCPKG_ROOT 

    Параметр VCPKG_ROOT помогает Visual Studio найти экземпляр vcpkg. Добавьте его, чтобы PATH вы могли выполнять команды vcpkg непосредственно из оболочки.

    1. Создайте файл манифеста и добавьте зависимости.

    Выполните следующую команду, чтобы создать файл манифеста vcpkg ( vcpkg.json ):

    vcpkg new --application 

    Команда vcpkg new добавляет vcpkg.json файл и vcpkg-configuration.json файл в каталог проекта.

    fmt Добавьте пакет в качестве зависимости:

    vcpkg add port fmt 

    Теперь должно содержаться следующее vcpkg.json :

    Это файл манифеста. vcpkg считывает файл манифеста, чтобы узнать, какие зависимости необходимо установить и интегрировать с MSBuild, чтобы предоставить зависимости, необходимые для проекта.

    vcpkg-configuration.json Созданный файл представляет базовый план, который устанавливает минимальные ограничения версий для зависимостей проекта. Изменение этого файла выходит за рамки область этого руководства. Хотя это не применимо в этом руководстве, рекомендуется сохранить vcpkg-configuration.json файл под управлением версиями, чтобы обеспечить согласованность версий в разных средах разработки.

    3. Настройка файлов проекта

    CMakeLists.txt Создайте файл со следующим содержимым:

    cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt) 

    Теперь давайте разберем, что делает каждая строка в CMakeLists.txt файле:

    • cmake_minimum_required(VERSION 3.10) : указывает, что минимальная версия CMake, необходимая для сборки проекта, — 3.10. Если версия CMake, установленная в вашей системе, ниже этой, будет создана ошибка.
    • project(HelloWorld) : задает имя проекта «HelloWorld».
    • find_package(fmt CONFIG REQUIRED) : ищет библиотеку fmt с помощью файла конфигурации CMake. Ключевое слово REQUIRED гарантирует, что ошибка создается, если пакет не найден.
    • add_executable(HelloWorld main.cpp) : добавляет исполняемый целевой объект с именем HelloWorld, созданный из исходного файла main.cpp .
    • target_link_libraries(HelloWorld PRIVATE fmt::fmt) : указывает, что исполняемый HelloWorld файл должен ссылаться на библиотеку fmt . Ключевое слово PRIVATE указывает, что fmt требуется только для строительства HelloWorld и не должен распространяться на другие зависимые проекты.

    helloworld.cpp Создайте файл со следующим содержимым:

    #include int main()

    В этом helloworld.cpp файле заголовок включен для использования библиотеки fmt . Затем main() функция вызывает fmt::print() сообщение «Hello World!» в консоль.

    Чтобы система проектов CMake распознала библиотеки C++, предоставляемые vcpkg, необходимо предоставить vcpkg.cmake файл цепочки инструментов. Чтобы автоматизировать это, создайте CMakePresets.json файл в каталоге Helloworld со следующим содержимым:

    < "version": 3, "configurePresets": [ < "name": "default", "binaryDir": "$/build", "cacheVariables": < "CMAKE_TOOLCHAIN_FILE": "$env/scripts/buildsystems/vcpkg.cmake" > > ] > 

    Этот CMakePresets.json файл содержит одну предустановку по умолчанию для CMake и задает CMAKE_TOOLCHAIN_FILE переменную. Позволяет CMAKE_TOOLCHAIN_FILE системе проектов CMake распознавать библиотеки C++, предоставляемые vcpkg. CMakePresets.json Добавление автоматизирует процесс указания цепочки инструментов при запуске CMake.

    4. Сборка и запуск проекта

    1. CMake: Build Запустите команду проекта, перейдя к палитре команд в палитре команд в палитре команд представления >

    CMake build command in VS Code

    Снимок экрана: выбор команды сборки CMake в VS Code.

    default Выберите предустановку CMake. Это позволяет цепочке инструментов vcpkg.

    Selecting preset in CMake build command in VS Code

    Снимок экрана: выбор предустановки в команде сборки CMake в VS Code.

    Вы должны увидеть выходные данные:

    Hello World! 

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

    Дополнительные сведения см vcpkg.json . в нашей справочной документации:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *