Использование C ++ и WSL в VS Code для удаленного устройства ARM64 - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь собрать main.cpp файл

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
   int count=0;
   vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

   for (const string& word : msg)
   {
      count++;
      cout << word << " ";
   }
   cout << endl;
}

Используя C ++ и WSL в VS Code , но это заканчивается. В этом примере я могу построить его на WSL напрямую

x86: g++-7 main.cpp -o main.x86_64
ARM64: aarch64-linux-gnu-g++ main.cpp -o main.arm64

Моя задача. json файл

    {
        "type": "shell",
        "label": "aarch64-linux-gnu-g++",
        "command": "/usr/bin/aarch64-linux-g++",
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}.arm64"
        ],
        "options": {
            "cwd": "/usr/bin"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }

Как это можно построить (кросс-компилировать) для удаленной ARM-цели машины в VSCode и удаленно отлажены?

У меня есть IP адрес для целевой машины s sh, и локально на Win10 / WSL я установил "aarch64- linux -gnu- g cc "... я могу сделать это вручную, это означает, что это нужно сделать кросс-компиляцией и перейти к цели и выполнить там.

1 Ответ

0 голосов
/ 02 февраля 2020

Частично мне это удалось - я установил собственное расширение отладки Собственная отладка WebFreak

    {
        "type": "gdb",
        "request": "launch",
        "name": "Launch Program (SSH)",
        "target": "/home/root/peterb/bin/main.arm64",
        "cwd": "${workspaceRoot}",
        "preLaunchTask": "aarch64-linux-gnu-g++",
        "ssh": {
           "host": "10.171.89.215",
           "cwd": "/home/root/peterb/bin",
           "user": "root",
           "password": "",
           "port": 22,
           "useAgent": false,
           "forwardX11": false
        }
    }

Я вручную скопировал исполняемый файл main.arm64 и main.cpp на машину arm64. Исполняемый код запускается и может быть отлажен.

enter image description here

"preLaunchTask": "aarch64-linux-gnu-g++", do " automati c build ".

Теперь я хочу сделать автоматическое c копирование из рабочей области проекта с хоста на целевой компьютер?

...