2014-02-10 3 views
4

Возможно ли получить номер столбца, в котором произошла ошибка (главным образом, исходящая из cl.exe) на выходе MSBuild.exe?Ошибка столбца столбца при использовании msbuild.exe

Я хотел бы сделать это для правильной привязки ключа F4 к Sublime Text.

Microsoft (R) Build Engine version 4.0.30319.17929 
[Microsoft .NET Framework, version 4.0.30319.17929] 
Copyright (C) Microsoft Corporation. All rights reserved. 

    'Microsoft Visual C++ Compiler Nov 2012 CTP' is for testing purposes only. 
    Mesh.cpp 
..\..\..\lib\Kernel\Mesh.cpp(94): error C2143: syntax error : missing ';' before 'return' [C:\Users\Stringer\Code\XXXXXXX\kernel\lib\Kernel\kernel.vcxproj] 
[Finished in 1.4s] 
+0

Если вы измените многословность протоколирования на «диагностику», вы получаете соответствующий уровень детализации из cl.exe? – Nicodemeus

+0

Нет, это не меняет ничего из MSBuild, печатающего много технического сленга ... – Stringer

+0

Технический сленг - это основной язык Stack Overflow! (вы должны опубликовать некоторые из них, а также версию визуальной студии, а если «output of msbuild.exe» означает «панель ошибок в visual studio») – Nicodemeus

ответ

5

Это не имеет никакого отношения к MSBuild.exe. Это компилятор C++, который не предоставляет информацию о номере столбца. У него нет возможности включить его.

Это связано с моделью сборки для C или C++. Препроцессор сначала получает снимок исходного кода и часто значительно изменяет его. Сам компилятор может видеть только предварительно обработанную версию источника. Компиляторы C++ имеют механизм сохранения исходного имени файла и номера строки (see #line), но не для номеров столбцов, это нецелесообразно.

Таким образом, номера столбцов отсутствуют.

Notable is Clang, проект компилятора, единственной причиной которого было устранение некоторых из этих основных ограничений компиляции C++.

Смежные вопросы