Intel® C++ Compiler - Consistent Use of Compiler Options in Compile/Link Phase

If you are compiling applications with a separate compile and link process, the optimization options in the compile/link phase should match, especially when using openmp, parallelization, vectorization or interprocedural optimizations. If options are not consistent, you may get missing symbols at link time, causing the link to fail.

Example 1:
In this example -xW is used in the compile phase, but it is missing from the link phase and results in an unresolved external symbol vmldExp2.  Correct this problem by linking with -xW option.
icpc -xW -c test1.cpp test2.cpp
icpc test1.o test2.o

Example 2:
In this example, -openmp is used in the compile phase but isn't used when linking. This results in unresolved errors when linking.  Correct this problem by linking with -openmp option.
icpc -openmp test1.cpp test2.cpp
icpc test1.obj test2.obj
Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.
Возможность комментирования русскоязычного контента была отключена. Узнать подробнее.