我有一个项目,其中包含一个相当性能关键的文件,并且为了使程序的其余部分的调试可行,它必须至少使用一些优化进行编译,特别是内联。我曾经在VS2010中手动执行此操作,但现在我想在premake5生成的VS2015项目中实现相同的目标。
我知道我应该为此文件设置一个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>
是否可以使用预制,或是否需要修补以自动禁用任何配置或优化文件的基本运行时检查?
答案 0 :(得分:0)
如果我理解正确,我想你可能正在寻找这样的东西:
project "MyProject"
flags "NoRuntimeChecks"
filter { "files:critical_file.cpp" }
optimize "Speed"
如果要分别优化调试版和发行版,它看起来像:
project "MyProject"
flags "NoRuntimeChecks"
filter { "configurations:Debug", "files:critical_file.cpp" }
optimize "Speed"
filter { "configurations:Release", "files:critical_file.cpp" }
optimize "Full"
希望有所帮助!