<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sat, 20 Mar 2010 17:24:15 -0700 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-c-compiler-for-mac-os-x-kb/type/errors-diagnostics/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-c-compiler-for-mac-os-x-kb/errors-diagnostics/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>How to handle warning messages in the compiler</title>
      <description><![CDATA[ <p align="left">Recently, I received several customer issues about how to handle warning messages in Intel compiler. To ease customer this kind of question, I summary related information of warnings, errors and remarks here.</p>
<p align="left"> </p>
<p align="left">Remarks</p>
<p align="left">Remark messages report common but sometimes unconventional use of C or C++. The compiler does not print or display remarks unless you specify the /W4 option. Remarks do not stop translation or linking. Remarks do not interfere with any output files. The following are some representative remark messages:</p>
<p align="left"><a name="ul_3D220EAA950F48EF8698845052CB3B1A"></a><a name="li_4C264B79B4424E2A9D5EDB249FA5A420"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       function declared implicitly</p>
<p align="left"><a name="li_AEB5D30467174777AED8563A141EEB8C"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       type qualifiers are meaningless in this declaration</p>
<p align="left"><a name="li_A833A9AF21F74D24B4B885B9A2DCE8FC"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       controlling expression is constant</p>
<p align="left"><a name="section_16594ED998A4451BA4A2F80AF8A3C00B"></a>Warnings</p>
<p align="left">Warning messages report legal but questionable use of the C or C++. The compiler displays warnings by default. You can suppress all warning messages with the /w compiler option. Warnings do not stop translation or linking. Warnings do not interfere with any output files. The following are some representative warning messages:</p>
<p align="left"><a name="ul_187D6F3B940E4AF69349C0AB574D1E3C"></a><a name="li_A24D5B7093164155B274A149A500BA71"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       declaration does not declare anything</p>
<p align="left"><a name="li_2F0E74676E9E492CB136CFC2A7ADA2FC"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       pointless comparison of unsigned integer with zero</p>
<p align="left"><a name="li_FE473F8FBACD44E18E0040447236784F"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       possible use of = where == was intended</p>
<p align="left"><a name="section_AC849C1BCE7348BB93D2398F0CFDB1E6"></a>Errors</p>
<p align="left">These messages report syntactic or semantic misuse of C or C++. The compiler always displays error messages. Errors suppress object code for the module containing the error and prevent linking, but they allow parsing to continue to detect other possible errors. Some representative error messages are:</p>
<p align="left"><a name="ul_1E043240F2EF4390A31C051A5C19A365"></a><a name="li_E638F19BEBB44F00AF950BAF3DEF5FF8"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       missing closing quote</p>
<p align="left"><a name="li_D9B4B987B5584428870D14AFAC78AFDB"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       expression must have arithmetic type</p>
<p align="left"><a name="li_7FB3AACA7EAD458486A8E98507578D3B"></a>•<img width="11" src="http://software.intel.com/en-us/admin/articles/PicExportError" alt="*" height="11" />       expected a ";"</p>
<p align="left"><a name="section_5139786B540046FB8B562B57AA51FBF3"></a>Option Summary</p>
<p align="left">Use the following compiler options to control remarks, warnings, and errors:</p>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
<thead>
<tr>
<td width="30%" valign="top">
<p align="left"><a name="table_2C36714435024047BB8321836FBF5AA8"></a><b>Option</b></p>
</td>
<td width="69%" valign="top">
<p align="left"><b>Result</b></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td width="30%" valign="top">
<p align="left">/w; -w</p>
</td>
<td width="69%" valign="top">
<p align="left">Disables all warning messages</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/W0; -W0</p>
</td>
<td width="69%" valign="top">
<p align="left">Disables warnings; displays errors</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/W1, /W2; -W1, -W2</p>
</td>
<td width="69%" valign="top">
<p align="left">Displays warnings and errors.</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/W3; -W3</p>
</td>
<td width="69%" valign="top">
<p align="left">Displays remarks, warnings, and errors. This level is recommended for production purposes</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/W4, /Wall; -W4, -Wall</p>
</td>
<td width="69%" valign="top">
<p>Displays all level 3 (n=3) warnings plus informational warnings, which in most cases can be safely ignored.</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/W5; -W5</p>
</td>
<td width="69%" valign="top">
<p align="left">Displays all remarks, warnings, and errors. This setting produces the most diagnostic messages</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/WL; -Wbrief</p>
</td>
<td width="69%" valign="top">
<p align="left">Display brief one-line diagnostics</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/Wcheck; -Wcheck</p>
</td>
<td width="69%" valign="top">
<p align="left">Enable more strict diagnostics</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/Werror-all; -Werror-all</p>
</td>
<td width="69%" valign="top">
<p align="left">Change all warnings and remarks to errors</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/WX; -Werror</p>
</td>
<td width="69%" valign="top">
<p align="left">Change all warnings to errors</p>
</td>
</tr>
</tbody>
</table>
<p align="left">You can also control the display of diagnostic information with variations of the /Qdiag compiler option. This compiler option accepts numerous arguments and values, allowing you wide control over displayed diagnostic messages and reports.</p>
<p align="left">Some of the most common variations include the following:</p>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
<thead>
<tr>
<td width="34%" valign="top">
<p align="left"><a name="table_2896F98E34A84A3DB37E6B7016F1AE34"></a><b>Option</b></p>
</td>
<td width="65%" valign="top">
<p align="left"><b>Result</b></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td width="34%" valign="top">
<p align="left">/Qdiag-enable:list</p>
<p align="left">-diag-enable list</p>
</td>
<td width="65%" valign="top">
<p align="left">Enables a diagnostic message or a group of messages</p>
</td>
</tr>
<tr>
<td width="34%" valign="top">
<p align="left">/Qdiag-disable:list</p>
<p align="left">-diag-disable list</p>
</td>
<td width="65%" valign="top">
<p align="left">Disables a diagnostic message or a group of messages</p>
</td>
</tr>
<tr>
<td width="34%" valign="top">
<p align="left">/Qdiag-warning:list</p>
<p align="left">-diag-warning list</p>
</td>
<td width="65%" valign="top">
<p align="left">Tells the compiler to change diagnostics to warnings</p>
</td>
</tr>
<tr>
<td width="34%" valign="top">
<p align="left">/Qdiag-error:list</p>
<p align="left">-diag-error list</p>
</td>
<td width="65%" valign="top">
<p align="left">Tells the compiler to change diagnostics to errors</p>
</td>
</tr>
<tr>
<td width="34%" valign="top">
<p align="left">/Qdiag-remark:list</p>
<p align="left">-diag-remark list</p>
</td>
<td width="65%" valign="top">
<p align="left">Tells the compiler to change diagnostics to remarks (comments)</p>
</td>
</tr>
</tbody>
</table>
<p align="left">The <i>list</i> items can be specific diagnostic IDs, one of the keywords warn, remark, or error, or a keyword specifying a certain group (par, vec, <i>sc</i>, driver, thread, par, port-linux,, sc,<i>openmp</i>).</p>
<p align="left">Other diagnostic-related options include the following:</p>
<table border="1" cellpadding="0" cellspacing="0">
<thead>
<tr>
<td width="30%" valign="top">
<p align="left"><a name="table_FF743D3C9F494E55858872982CFFDBE2"></a><b>Option</b></p>
</td>
<td width="70%" valign="top">
<p align="left"><b>Result</b></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td width="30%" valign="top">
<p align="left">/Qdiag-dump</p>
<p align="left">-diag-dump</p>
</td>
<td width="70%" valign="top">
<p align="left">Tells the compiler to print all enabled diagnostic messages and stop compilation</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/Qdiag-file[:file]</p>
<p align="left">-diag-file[=file]</p>
</td>
<td width="70%" valign="top">
<p align="left">Causes the results of diagnostic analysis to be output to a file</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/Qdiag-file-append[:file]</p>
<p align="left">-diag-file-append[=file]</p>
</td>
<td width="70%" valign="top">
<p align="left">Causes the results of diagnostic analysis to be appended to a file</p>
</td>
</tr>
<tr>
<td width="30%" valign="top">
<p align="left">/Qdiag-error-limit:n</p>
<p align="left">-diag-error-limitn</p>
</td>
<td width="70%" valign="top">
<p align="left">Specifies the maximum number of errors allowed before compilation stops</p>
</td>
</tr>
</tbody>
</table>
<p align="left"> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-handle-warnings-message-in-compiler</link>
      <pubDate>Fri, 19 Feb 2010 21:43:20 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-handle-warnings-message-in-compiler#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-handle-warnings-message-in-compiler</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 269: invalid format string conversion</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Casue: </b><br /><br />This warning is triggered by a printf or scanf format specifier that is not appropriate for the type of the variable being printed. <br />
<p><b><br />Example: </b></p>
<pre name="code" class="cpp">#include &lt;stdio.h&gt;

int main() {
   long int li = 0;
   printf("%l\n",li);     // %l is the size specifier; the type specifer is missing
   printf("%ld\n",li);  // OK
   return 0;
}
</pre>
<p> </p>
<blockquote>
<p>&gt; icl -c /W4 diag269.cpp<br />Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035<br />Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.</p>
<p>diag269.cpp<br />diag269.cpp(5): warning #269: invalid format string conversion<br />printf("%l\n",li);<br />           ^ </p>
</blockquote>
</div>
<br /><br /><strong>Resolution : <br /></strong><br />Use proper type specifier.<br /><br /><br />
<div></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag269</link>
      <pubDate>Mon, 07 Dec 2009 16:02:11 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag269#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag269</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Intel Compiler version 11.1 error with OpenMP KMP_SET_STACKSIZE_S() </title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Reference Number : </b>DPD200142334<br /><br /><br /><b>Version : </b>11.1<br /><br /><br /><b>Product : </b>Intel C++ Compiler, Intel Fortran Compiler<br /><br /><br /><b>Operating System : </b>Linux, Windows<br /><br /><br /><b>Problem Description : </b><br /><br />After your OpenMP source with call to KMP_SET_STACKSIZE_S() compiled by Intel compiler version 11.1, it crashed with "Segmentation fault" or other stack error message.<br /><br />It is an known issue for Intel compiler version 11.1, with build date after 20090401.   It doesn't exist in version 11.0.<br /><br />The workarond is to manually set the environment variable OMP_STACKSIZE before executing the program. <br /><br />For example:<br /><br /> &gt; set OMP_STACKSIZE=16m           (in windows)<br /> ] export OMP_STACKSIZE=16m       (in Linux)<br /><br /><br /><b>Resolution Status : </b><br /><br />Compiler eneering team is working on fix in future version of 11.1 compiler.<br /><br /><br /><br /><i>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers.  Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site.  ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose.  Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</i></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-compiler-version-111-error-with-openmp-kmp_set_stacksize_s</link>
      <pubDate>Wed, 02 Dec 2009 23:19:48 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-compiler-version-111-error-with-openmp-kmp_set_stacksize_s#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-compiler-version-111-error-with-openmp-kmp_set_stacksize_s</guid>
      <category>Intel® Compilers</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 181: argument is incompatible with corresponding format string conversion</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Cause: </b><br /><br />This warning is triggered by a printf or scanf format specifier that is not appropriate for the type of the variable being printed. <br /><br /><b>Example: </b><br /><br />
<p>#include &lt;stdio.h&gt;</p>
<p>int main() {<br />   unsigned int ui = 0;<br />   printf("%f\n",ui);  // %f is for a double type, not an unsigned integer type<br />   printf("%u\n",ui); // OK<br />   return 0;<br />}<br />&gt; icl -c /W4 diag181.cpp<br />Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035<br />Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.</p>
<p>diag181.cpp<br />diag181.cpp(5): warning #181: argument is incompatible with corresponding format string conversion<br />     printf("%f\n",ui);<br />                   ^</p>
<b>Resolution : </b><br /><br />Use the proper type specifier.<br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag181</link>
      <pubDate>Wed, 18 Nov 2009 16:23:47 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag181#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag181</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 319: name followed by &amp;#34;::&amp;#34; must be a class or namespace</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Cause: </b><br /><br />This diagnostic occurs when a qualifier is not preceded by a class or namespace name.  <br /><br /><b>Example: </b><br /><br />
<p>class C {<br />   static int i;<br />};</p>
<p>typedef int Foo;</p>
<p>int Foo::i;  // error -- Foo is not a class or namespace</p>
<br />
<p>&gt; icl -c diag319.cpp<br />Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035<br />Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.</p>
<p>diag319.cpp<br />diag319.cpp(7): error: name followed by "::" must be a class or namespace name<br />  int Foo::i;<br />      ^</p>
<br /><b>Resolution: </b><br /><br />Quality the name correctly.  For example:<br /><br />int C::i;    // ok, C is a class name<br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag319</link>
      <pubDate>Wed, 18 Nov 2009 15:24:43 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag319#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag319</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 109: expression must have (pointer-to-) function type</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Cause: </b><br />
<p><br />This error is reported when the compiler sees a function call but the identifier in the<br />function call is not a function name or function pointer.</p>
<p><br /><b>Example: <br /></b><br />void foo(void* p) {<br />    p();   // p is being called as if it were a function but it is not a function<br /><br />}</p>
<p>&gt; icl -c diag109.cpp<br />Intel(R) C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035<br />Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.</p>
<p>diag109.cpp<br />diag109.cpp(2): error: expression must have (pointer-to-) function type<br />      p();<br />      ^</p>
<p><b>Resolution : </b><br />Ensure there is no syntax error and the function prototype exists.</p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag109</link>
      <pubDate>Wed, 18 Nov 2009 15:13:47 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag109#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag109</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 1881: argument must be a constant null pointer value</title>
      <description><![CDATA[ <p><strong>Cause:</strong></p>
<p>The sentinel attribute is described in the GNU* documentation here: <a href="http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Function-Attributes.html#Function-Attributes">http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Function-Attributes.html#Function-Attributes</a> </p>
<p>It says:</p>
<p>A valid NULL in this context is defined as zero with any pointer type. If your system defines the NULL macro with an integer type then you need to add an explicit cast.</p>
<p>The GNU compiler will give a diagnostic too also if "-Wformat" is specified.</p>
<p><strong>Example:</strong></p>
<pre name="code" class="cpp">#define NULL 0

//#define NULL ((void*)0)  // this fixes the problem

int execl(const char *path, const char *arg, ...) __attribute__ ((sentinel));

int main() {
   execl("","",NULL); // warning issued here
   return 0;
}
</pre>
<p> </p>
<blockquote>
<p>$ icc -c diag1881.c<br />diag1881.c(9): warning #1881: argument must be a constant null pointer value<br />     execl("","",NULL); // warning issued here<br />                 ^</p>
</blockquote>
<p><br /><strong>Resolution status:<br /></strong>Use a header file that defines NULL as a pointer type (such as stddef.h) or declare NULL correctly like:</p>
<pre name="code" class="cpp">#define NULL ((void*)0)  // this fixes the problem</pre> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag1881</link>
      <pubDate>Mon, 16 Nov 2009 16:44:26 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag1881#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag1881</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>dyld:Library not loaded:libiomp5.dylib</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b><br />
<p>Build an Intel® MKL program on Mac OS* with Intel® Fortran Compiler, <br /><br />For example, m_cprof_p_11.1.076, <br />MKLPATH=/opt/intel/Compiler/11.1/076/Frameworks/mkl/lib/em64t<br />MKLINCLUDE=/opt/intel/Compiler/11.1/076/Frameworks/mkl/include<br />&gt; ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core  -lpthread </p>
get compiler warning: <br />ld64 warning: indirect library libiomp5.dylib could not be loaded: file not found: libiomp5.dylib<br /><br />Or runtime error:<br />dyld: Library not loaded: libiomp5.dylib<br />  Referenced from: /opt/intel/Compiler/11.1/076/Frameworks/mkl/lib/em64t/libmkl_intel_thread.dylib<br />  Reason: image not found<br />Trace/BPT trap<br /><br /><br /><b>Root Cause : </b><br />Since MKL 10.0, the MKL libraries for Mac OS* have been integrated into Intel® C++/Fortran Compiler Professional Edition. The default path of MKL libraries were changed from <br />"/Library/Frameworks/Intel_MKL.framework/Versions/10.0.x.xxx/"   <br />to "/opt/intel/Compiler/11.x/0xx/Frameworks/mkl/"  <br /><br />At the same time, the default OpenMP libraries (libiomp5.dylib, libiomp5.a) used by MKL are not in &lt;MKL Libraries&gt;/lib directory as in previous versions. They are under the Intel compiler lib directory now. <br />for example,  in /opt/intel/Compiler/11.0/0xx/lib<br /><br />(IPP is the same, please see the article <a href="http://software.intel.com/en-us/articles/xcode-link-error-file-not-found-libiomp5dylib/">XCode link error: "file not found: libiomp5.dylib"</a> )<br /><br /><b>Resolution : </b><br />For compiler warning: <br />Please refer to the <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL link line advisor</a>. <br />the command line could be <br />&gt;ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core <strong>-openmp</strong> -lpthread <br /><br />or <br />ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core <br />-L/opt/intel/Compiler/11.1/076/lib <strong>-liomp5</strong> -lpthread <br /><br /><strong>For runtime error:</strong>  like dyld: Library not loaded: lib[mkl|ipp]_x.dylib <br /><br />Please add the path of lib*.dylib in system environment before run binary.<br />&gt;export DYLD_LIBRARY_PATH="/opt/intel/Compiler/11.1/076/lib:$DYLD_LIBRARY_PATH"<br /><br />In Xcode 2.3 development environment, <br />Under <strong>Executables</strong>, Double click active <strong>Executable</strong>, click "<strong>Arguments</strong>" Tab, under Variables to be set in the environment, Add DYLD_LIBRARY_PATH , set value, for example,<br />/opt/intel/Compiler/11.1/076/lib:/opt/intel/Compiler/11.1/080/Frameworks/mkl/lib/em64t <br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib</link>
      <pubDate>Mon, 16 Nov 2009 01:02:02 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib</guid>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 10120: overriding &amp;lt;option&gt; with &amp;lt;option&gt;</title>
      <description><![CDATA[ <p> </p>
<p><strong>Cause</strong>:</p>
<p>This warning is issued by the driver when you have two conflicting options on the same command line. The last one on the command line "wins".Remember that command line options can exist in makefiles and config files (i.e. icc.cfg, icpc.cfg, icl.cfg or ifort.cfg).</p>
<p><strong>Example:</strong></p>
<blockquote>
<p>&gt; icc -O3 -O2 -c foo.c<br />icc: command line warning #10120: overriding '-O3' with '-O2'</p>
</blockquote>
<p><strong>Resolution Status</strong>:</p>
<p>Look at your command line and remove the redundant flag.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag10120</link>
      <pubDate>Fri, 02 Oct 2009 14:54:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag10120#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag10120</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Diagnostic 10114: Microsoft Visual C++ not found in path</title>
      <description><![CDATA[ <p><br /><strong>Cause:</strong></p>
<p>The Intel(R) C++ compiler for Windows needs to know which version of the Microsoft* compiler (i.e. Microsoft Visual C++ 2003*, 2005*, 2008* etc) you are using in order to set our Microsoft compability version to emulate. <br /><br />For example, there are certain Microsoft bugs that exist in the Microsoft Visual C++ 2003 compiler but were fixed in Microsoft Visual C++ 2005 that we would only emulate if you had a Microsoft Visual C++ 2003 environment (header files and libraries). <br /><br />In order to do this, the icl driver looks in your path for the version of cl.exe and sets the microsoft version when it calls our compiler based upon what it finds.</p>
<p><strong>Example:</strong></p>
<p>Compiling any program on Windows and not having "cl.exe" somewhere in your path.</p>
<p><strong>Resolution status:</strong></p>
<p>Change your path environment variables to include the directories where Microsoft Visual C++ executable "cl.exe", include header files and run time libraries. Easiest way is to run Visual C++ vcvars32.bat. <br /><br />Or pass the options "/Qvc[7.1|8|9]" and "/Qlocation,link,"[cl-dir]" to the icl.exe.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/cdiag10114</link>
      <pubDate>Mon, 28 Sep 2009 11:28:53 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/cdiag10114#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/cdiag10114</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
  </channel></rss>