Как я могу использовать cl.exe в службе приложений Azure для компиляции кода С++ и создания исполняемого файла

Мое приложение размещено в службе приложений Azure, и я хочу скомпилировать код С++ и создать среду выполнения файла .exe, используя класс Process в С#. Я не могу установить компилятор С++. Однако я вижу, что в моей службе приложений Azure установлена ​​​​визуальная студия, и я решил использовать cl.exe, которая находится в следующей папке: D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_x86\cl.exe.

Когда я запускаю следующую команду в консоли службы приложений Azure: set PATH=%PATH%;D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_x86; & cl /EHsc test.cpp test.exe не создается и ошибок нет.


person Nasko    schedule 26.09.2019    source источник
comment
Наско, у тебя есть возможность проверить мой ответ?   -  person Tom Luo    schedule 11.10.2019


Ответы (1)


Я не разработчик С++. Но я быстро поискал и нашел информацию ниже. Я надеюсь, что это полезно.

1. Вы не можете напрямую запускать cl.exe в командной строке. Потому что это зависит от набора переменных среды. Обычно вам нужно запустить его из приглашения разработчика VS или запустить bat-файл, поставляемый с VS, чтобы сначала настроить переменные среды. См. https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=vs-2019 для получения подробной информации.

Проблема в том, что в среде Azure Web App такого bat-файла нет.

2. В среде Azure Web App файловая система особенная, поскольку файлы также доступны другим пользователям. Вы можете читать системные файлы, но писать можете только в папку D:\home. Поэтому вам также необходимо изменить путь к выходному файлу на D:\Home . А если cl.exe нужно записать в какой-то файл в другой папке, то не получится.

Я могу придумать решение: вам нужно скачать набор автономного компилятора MSVC и перенести его в ваша домашняя папка веб-приложения Azure. Он содержит файл CL.EXE и нужный нам bat-файл. Файлы в папке D:\home сохраняются в Azure. Затем вы можете следовать инструкциям здесь для сборки с помощью CL.EXE

person Tom Luo    schedule 30.09.2019