Создайте полнофункциональную модульную среду разработки с помощью Apptainer или Singularity.
В этом учебном пособии будет рассмотрено наличие программного обеспечения / библиотек в контейнере Apptainer (ранее известном как Singularity), а затем подключение к контейнеру с использованием VS Code, что позволит использовать все преимущества Intellisense, как если бы библиотеки были установлены непосредственно в вашей системе для любого языка программирования. .
Примечание. Если вам нужны дополнительные руководства по частям этого процесса, пожалуйста, спросите в комментариях ниже! Обязательно подпишитесь на другие уроки, подобные этому, в будущем.
Для начала вам понадобится следующее:
- Apptainer (или Singularity), установленный в вашей системе. Обратите внимание, что для Singularity замените везде, где я пишу,
apptainer
наsingularity
, и все должно работать нормально. - Встроенный контейнер с библиотеками, на которые должна ссылаться Intellisense. Я буду использовать свой собственный файл определения: github.com/…/argos_base.def
- VS Code установлен в вашей локальной системе. Вы можете получить его здесь code.visualstudio.com/download
- Локальная папка с кодом, который будет ссылаться на библиотеки. В моем случае это простой набор файлов .cpp и .h (мои приведены ниже).
- Немного времени.
Если вы хотите собрать мой контейнер, используйте следующие команды в терминале:
Давай начнем! Во-первых, я предполагаю, что ваш контейнер и файлы находятся внутри папки 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, которые я использовал в проекте, приведены ниже: