Как я могу использовать cl.exe в службе приложений Azure для компиляции кода C ++ и создания исполняемого файла - PullRequest
0 голосов
/ 26 сентября 2019

Мое приложение размещено в службе приложений Azure, и я хочу скомпилировать код c ++ и создать исполняемый файл .exe, используя класс Process в c #.Я не могу установить компилятор c ++.Однако я вижу, что в моей службе приложений Azure установлена ​​Visual Studio и решил использовать 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 не создается и ошибок нет.

1 Ответ

0 голосов
/ 30 сентября 2019

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

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 path.Поэтому вам также нужно изменить путь к выходному файлу на D: \ Home.И если cl.exe нужно записать в какой-то файл в другой папке, то это не удастся.

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

...