Я создал оболочку в C ++ для cl.exe
(компилятор Visual Studio). Для этого я изменил переменную среды PATH
, чтобы Visual Studio сначала нашла мой cl.exe
. В моем cl.exe
я затем создаю процесс, который запускает реальный cl.exe
с параметрами, которые получил мой cl.exe
.
Цель этого - отфильтровать выходные данные от реального cl.exe
, чтобы удалить предупреждения, с которыми мы ничего не можем сделать. Мы хотим включить «Обнаружение 64-битных вероятностных проблем», потому что это здорово, но выдает предупреждение.
Внимание:
cl: Предупреждение командной строки D9035: опция 'Wp64' устарела и будет удалена в следующем выпуске
Я искал несколько дней, как удалить это конкретное предупреждение, это , а не предупреждение, которое можно отключить с помощью кода или параметров, таких как обычные предупреждения.
Проблема : Visual Studios запускает мой cl.exe
, затем мой cl.exe
выполняет действительный cl.exe
, но с этого момента мой cl.exe
больше не получает вывод. Я проверил это, заставив его вызывать что-то отличное от реального cl.exe
, и мой cl.exe
полностью контролирует вывод ...
Любой вывод любого из файлов cl.exe
отображается в окне вывода в Visual Studio, но мой cl.exe
больше не получает вывод от реального cl.exe
...
Я использую канал для обработки вывода в моем cl.exe
, и он работает с чем угодно, кроме реального cl.exe
.
Почему мой cl.exe
не управляет выводом? Visual Studio забывает о моем cl.exe
и как-то привязывается к реальному?
Кроме того, есть ли решение, кроме создания оболочки для cl.exe
, чтобы избавиться от этого предупреждения?