Создайте полнофункциональную модульную среду разработки с помощью Apptainer или Singularity.

В этом учебном пособии будет рассмотрено наличие программного обеспечения / библиотек в контейнере Apptainer (ранее известном как Singularity), а затем подключение к контейнеру с использованием VS Code, что позволит использовать все преимущества Intellisense, как если бы библиотеки были установлены непосредственно в вашей системе для любого языка программирования. .

Примечание. Если вам нужны дополнительные руководства по частям этого процесса, пожалуйста, спросите в комментариях ниже! Обязательно подпишитесь на другие уроки, подобные этому, в будущем.

Для начала вам понадобится следующее:

  1. Apptainer (или Singularity), установленный в вашей системе. Обратите внимание, что для Singularity замените везде, где я пишу, apptainer на singularity, и все должно работать нормально.
  2. Встроенный контейнер с библиотеками, на которые должна ссылаться Intellisense. Я буду использовать свой собственный файл определения: github.com/…/argos_base.def
  3. VS Code установлен в вашей локальной системе. Вы можете получить его здесь code.visualstudio.com/download
  4. Локальная папка с кодом, который будет ссылаться на библиотеки. В моем случае это простой набор файлов .cpp и .h (мои приведены ниже).
  5. Немного времени.

Если вы хотите собрать мой контейнер, используйте следующие команды в терминале:

Давай начнем! Во-первых, я предполагаю, что ваш контейнер и файлы находятся внутри папки test_proj в вашем домашнем каталоге, например:

test_proj/ 
|-- argos_base.sif
`-- code 
    |-- proj_loop_functions.cpp  (source code below)
    `-- proj_loop_functions.h  (source code below)
 
1 directory, 3 files

Создайте файл ~/.ssh/config, если он не существует, и добавьте следующие строки (при необходимости замените путь и имя пользователя):

Проверьте, работает ли это через терминал: ssh argos_container~localhost и вы должны попасть в работающий экземпляр контейнера. Примечание: если вам нужно ввести пароль, вы можете настроить ключи ssh.

Затем откройте VS Code и нажмите Ctrl+Shift+P, чтобы открыть интерактивное меню, и введите Open Settings (JSON). Выберите соответствующий результат (подсказка: вероятно, 1-й). Включите в файл settings.json что-то вроде следующего.

Затем перейдите на вкладку расширений (Ctrl+Shift+X) и установите расширение Remote — SSH. После установки нажмите кнопку Switch to Pre-Release Version, чтобы получить последнюю версию (это необходимо, начиная с версии 0.71).

Наконец, нажмите кнопку ssh в левом нижнем углу >< (или нажмите Ctrl+Shift+P, затем введите Connect to Host). Выберите argos_container~localhost, и теперь вы должны быть подключены к экземпляру Apptainer. Как обычно, откройте папку рабочей области, я выбрал файл ~/test_proj. Обратите внимание, что расширение C/C++ необходимо установить в среду ssh, что можно сделать, просто перейдя на вкладку расширений, найдя его в списке и нажав Install in SSH: ....

Поздравляю! теперь у вас должен работать VS Code Intellisense, пока библиотеки не установлены непосредственно в вашей системе. Попробуйте это, щелкнув правой кнопкой мыши вызов функции→Peek→Peek Definition. Похлопайте учебнику, если он вам помог, и прокомментируйте что-нибудь ниже.

Если вы столкнетесь с какими-либо ошибками при подключении из VS Code, вам может потребоваться просто отключить некоторые старые процессы: sudo pkill vscode

Как и было обещано, файлы .cpp и .h, которые я использовал в проекте, приведены ниже: