Как заставить абсолютные пути для вывода ошибок сборки в Visual Studio
При сборке в большинстве проектов Visual Studio (2008, но я сомневаюсь, что это имеет значение), если есть ошибка, в ней указывается абсолютный путь к файлу с ошибкой. Вот так (игнорируйте конкретные ошибки - я их специально добавил):
1>dope_external.cpp
1>c:\users\me\dope_external.cpp(4) : error C2144: syntax error : 'void' should be preceded by ';'
1>c:\users\me\dope_external.cpp(4) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>Generating Code...
Тем не менее, решения / проекты, которые я сейчас работаю со списком относительных путей:
1>FileBasedEffect.cpp
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C2653: 'FusionEffectKeys' : is not a class or namespace name
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C2143: syntax error : missing ';' before 'const'
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Это происходит в Visual Studio, а также при сборке из командной строки или в другой среде с использованием vcbuild. Я хотел бы использовать другую среду для создания, по крайней мере, в качестве эксперимента. Но относительные пути меня немного сжимают.
Я не вижу каких-либо различий в свойствах проекта, которые очевидны как "UseRelativePathsInBuildErrors", но я не очень хорошо знаю систему сборки. Есть идеи? Благодарю.
1 ответ
Я нашел решение.
В свойствах проекта-> свойства конфигурации->c/ C++->Advanced есть опция "Использовать полные пути", которая заставляет vcbuild передавать флаг /FC в cl.exe. Это приводит к полному пути в выводе.
так что это решает мою проблему... но эта опция не установлена в случае, когда я уже вижу полные пути, так что здесь есть что-то еще.