Как я могу создать существующий Windows проект Visual Studio только из Bash, используя WSL - PullRequest
0 голосов
/ 12 марта 2020

У меня есть существующий проект C ++, который я настроил и построил в Visual Studio. Единственная цель этого проекта - Windows, других платформ нет. Я использую Bash в WSL для запуска исполняемого файла.

Я предпочитаю разрабатывать в Visual Code (не Visual Studio). Я предпочитаю создавать и запускать приложения с помощью Bash (сильный Linux фон).

Прямо сейчас мой рабочий процесс разработки:

  1. Редактирование кода в VS Code
  2. Переключитесь на Visual studio и нажмите кнопку сборки
  3. Переключитесь на Bash и выполните встроенную программу

Поскольку Visual Studio остается открытой только для сборки, я бы очень хотел Я предпочитаю строить с помощью командной строки через Bash.

Мой наивный подход заключался в использовании инструмента с открытым исходным кодом для преобразования файла проекта Visual Studio в файл CMake. Затем cmake & make из Bash, но я остановился, когда начал сталкиваться с ошибками, ища windows .h (возможно, мне просто нужно добавить несколько windows путей включения в мой include_path).

I ' я не уверен, что лучший способ go об этом будет. Любые предложения будут оценены!

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Если проект полностью на C ++, не должно быть оснований для выхода из WSL. Сборка и запуск приложения могут быть легко обработаны прямо здесь! Вы можете выполнить сборку из командной строки в bash, используя

g++ -o <outputfile> <inputfiles>

Однако самый простой способ запустить программу - создать конфигурацию сборки в Visual Code. Вам понадобятся 2 файла: запуск. json и задачи. json Чтобы создать файл запуска, нажмите F1 (или откройте командную паллету) и выберите Задачи: настроить задачу по умолчанию. Это должно выглядеть примерно так.

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}", //input files
                "-o",
                "${fileDirname}/a.out" //output file
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Чтобы создать запуск. json, go на вкладке «отладка» и выберите «создать запуск. json файл». Он должен выглядеть примерно так

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/a.out", //output file
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

с обоими этими файлами на месте, все, что вам нужно сделать, это нажать кнопку запуска, как в Visual Studio.

0 голосов
/ 19 марта 2020

MSBuild.exe предоставляется вместе с моей установкой Microsoft Visual Studio. Из WSL bash я могу вызвать MSBuild.exe и предоставить файл .sln моего проекта в качестве первого и единственного аргумента.

Вывод компиляции записывается в терминал.

...