У меня есть проект, содержащий файл с высокой критичностью, и сделать отладку остальной программы выполнимой, ее нужно скомпилировать, по крайней мере, с некоторыми оптимизациями, в частности встраивание. Раньше я делал это вручную в VS2010, но теперь я хотел бы добиться того же в проектах VS2015, созданных premake5.Оптимизация одного файла в VS-образном решении, создаваемом прематом
Я понимаю, что я должен иметь configuration
блок для этого файла несколько вида:
filter { "configurations:Debug*" }
configuration "critical_file.cpp"
-- Optimization settings go here
configuration {}
filter {}
Я пробовал различные вещи: optimize "Speed"
или optimize "Full"
не работает, потому что VS2015 предполагает /RTC1, который несовместима с /O2 или /O4:
7>cl : Command line error D8016: '/Ox' and '/RTC1' command-line options are incompatible
Добавление flags { "NoRuntimeChecks" }
в этом блоке не имеет значения.
Я также попытался добавить inlining "auto"
вместо того, чтобы хотя бы включить функцию вложения, но это не создало никакой конкретной конфигурации для этого файла.
Я думаю, что я хочу, в конце концов, выглядит примерно так:
<ClCompile Include="critical_file.cpp">
<Optimization Condition="'$(Configuration)'=='Debug'">Full</Optimization>
<BasicRuntimeChecks Condition="'$(Configuration)'=='Debug'"></BasicRuntimeChecks>
</ClCompile>
Возможно ли это с premake вообще, или это должно быть исправлено автоматически отключать основные проверки времени выполнения для любой конфигурации или файлы с оптимизацией?
К сожалению, это не похоже на то, что мне нужно, так как я не хочу отказываться от вспомогательных помощников Visual Studio в режиме отладки и фактически проверять проверки выполнения во время проекта, но отключить их для этого конкретного файла , То, что я хочу достичь **, возможно ** с созданным вручную файлом проекта VS, как показано в последнем примере в моем первоначальном сообщении. Построение файла будет выдавать предупреждение, но фактически оптимизирует этот единственный файл. Я думаю, что основная проблема заключается в том, что добавление '' 'flags {" NoRuntimeChecks "}' '' в блоке фильтра для одного файла не создает проект, как в моем примере. –