我正在处理遗留代码。如果同时指定了EHsc和EHa,会发生什么
要修复一些错误,我必须给EHa一些文件。在测试时,我测试了EHsc和EHa的整个项目。这解决了我的问题,但给出警告说编译器正在用EHa重写EH。 (选项顺序是:/ EHsc/EHa) 只有在构建需要EHa的文件时才会发生此警告。它不会出现在仅需要EH的源文件中。
<name of the file that needs EHa>\cl : warning D9025 : overriding '/EHs' with '/EHa'
我的问题是,这个警告是否告诉实际发生了什么? EHa仅适用于实际需要EHa的源文件吗? (其他文件是否需要使用EHsc构建的EHa?)
谢谢。
我没有尝试所有可能的组合。我主要担心的是使用EHa可能会降低性能。如果EHa应用于每个源文件,那么我正计划研究一种将EHa应用于实际需要它的文件并用EHsc编译其他文件的方法。唯一的问题是我不熟悉这里使用的基于Visual C++的构建系统。 谢谢 – Niroshan
您可以打开单个文件的属性并为这些特定文件设置不同的标志。但是我希望你在担心可能的性能下降之前,先对它进行了基准测试。过早优化和所有 – jalf