Visual studio 2017 - сборка через командную строку и MSBuild - отсутствует stdafx.h - PullRequest
0 голосов
/ 01 марта 2019

У меня есть файл sln, который я обычно компилирую в visual studio

, сейчас я пытаюсь скомпилировать свой проект в командной строке

Я не использую предварительно скомпилированные заголовки ,поэтому в командной строке он чувствует, что чего-то не хватает, потому что, как и я

MSBuild.exe myproject.sln

, я получаю сообщение об ошибке

unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"'

, например, если конфигурация проекта не была прочитана или что-то

settings picture

пытаясь форсировать одну конфигурацию / платформу, я получаю это

c:\myproject>"P:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild".exe game2D_sdl.sln /p:Configuration=Debug /p:Platform=Win32
Microsoft (R) Build Engine version 15.6.82.30579 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 1/03/2019 18:08:47.
Project "c:\myproject\game2D_sdl.sln" on node 1 (default targets).
c:\myproject\game2D_sdl.sln.metaproj : error MSB4126: The specified solution configuration "Debug|Win32" is invalid. Please specify a valid solution configuration using the Configuration an
d Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the default solution configuration. [c:\myproject\g
ame2D_sdl.sln]
Done Building Project "c:\myproject\game2D_sdl.sln" (default targets) -- FAILED.

У меня отключен PCH на всех платформах, просто сборка без форсирования платформы, я получаювключает ошибки

c:\myproject>"P:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild".exe game2D_sdl.sln
Microsoft (R) Build Engine version 15.6.82.30579 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 1/03/2019 18:13:52.
Project "c:\myproject\game2D_sdl.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|x64".
Project "c:\myproject\game2D_sdl.sln" (1) is building "c:\myproject\game2D_sdl\game2D_sdl.vcxproj" (2) on node 1 (default targets).
InitializeBuildStatus:
  Touching "x64\Debug\game2D_sdl.tlog\unsuccessfulbuild".
ClCompile:
  P:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\HostX86\x64\CL.exe /c /ZI /nologo /W3 /WX- /diagnostics:classic /sdl /Od /D _DEBUG /D _CONSOLE /D _UNICOD
  E /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /permissive- /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Debug\\" /Fd"x64\Debug\vc141.pdb" /Gd /TP /FC /errorReport:queue animations.cpp audio.cpp
   box.cpp .... animations.cpp .....
c:\myproject\game2d_sdl\game2d_sdl.h(13): fatal error C1083: Cannot open include file: 'nlohmann/json.hpp': No such file or directory [c:\myproject\game2D_sdl\game2D_sdl.vcxproj]
  audio.cpp

как мне правильно скомпилировать проект?спасибо

1 Ответ

0 голосов
/ 01 марта 2019

Отключение предварительно скомпилированных заголовков:

Свойства проекта -> C ++ -> Предварительно скомпилированные заголовки устанавливают для предварительно скомпилированного заголовка значение «Не использовать предварительно скомпилированный заголовок».

Возможно, вы захотите прочитать этот ответ: Для чего используется "stdafx.h" в Visual Studio?

...