如何降低“英特尔C\C+”中的错误检查级别+;编译程序

如何降低“英特尔C\C+”中的错误检查级别+;编译程序,c,visual-studio,icc,intel-composer,C,Visual Studio,Icc,Intel Composer,我正在尝试在Visual Studio 2013上使用“英特尔C\C++编译器”编译一个简单的测试项目 我在linux上编写了此测试,,其中,gcc编译代码时没有任何错误,,应用程序运行良好,但VS 2013上的英特尔编译器返回这些错误 ID Type Sources Modules Object Size State P1 Unhandled application exception source.c

我正在尝试在Visual Studio 2013上使用“英特尔C\C++编译器”编译一个简单的测试项目

我在linux上编写了此测试,,其中,gcc编译代码时没有任何错误,,应用程序运行良好,但VS 2013上的英特尔编译器返回这些错误

ID      Type                            Sources     Modules     Object Size State
P1      Unhandled application exception source.c    MyTest.exe              Not fixed
P2      Memory leak                     source.c    MyTest.exe  23984       New
P3      Memory leak                     source.c    MyTest.exe  19980008    New
P4      Invalid memory access           source.c    MyTest.exe              Not fixed
P5      Invalid memory access           source.c    MyTest.exe              Not fixed
P6      Uninitialized memory access     source.c    MyTest.exe              Not fixed

这似乎是因为我没有释放以前分配的内存块。。。由于这是一个测试应用程序,我不想花时间寻找丢失的释放导致问题的原因,我想知道是否有办法降低英特尔编译器的“严重性”,以便它可以忽略这些问题(gcc也是如此)。

内存泄漏
如果这只是一个测试应用程序,您可能可以忽略

但是,您如何证明访问非斜体内存(P6)、无效内存访问(P4、P5)和未处理异常(P1)的合理性


对我来说,这些问题似乎相当严重,即使对于测试应用程序也是如此。

但是程序有一个预定义的输入,并且在linux gcc上编译和编程完成执行时没有任何错误。这是一个严重的问题,在带有gcc的linux中,程序都无法编译和运行。如果您的内存未初始化,访问无效,那么您的程序这次可能运行正常,下次可能会完全失败。很遗憾,我已经在linux上运行此代码至少100次,以便在没有任何崩溃的情况下进行性能评估。。。听起来很奇怪。此外,如果输入总是相同的,并且例程总是做相同的事情,那么行为就不是那么不定义了。成功地进行100次规划并不能保证任何事情。在其他CPU、其他操作系统上,或者当您更改程序中的变量和函数时,行为可能会有所不同。正如我所说的,这是一个测试,在不同的PC上运行并不重要。代码只在相同的预加载矩阵上执行一些矩阵操作。如果最新的gcc版本不关心这些问题,我看不出有任何理由关心这些问题,我知道如果英特尔编译的代码在执行过程中返回这些错误,可能存在一些不完美的地方,因此我要求降低错误检查的方法。如果代码太坏,无法同时执行基本测试,则gcc不会编译,如果编译,则在运行时也会崩溃。