This page regroups some errors I encountered and how I solved them. Most of you will find this page by googling your error. If you get an error using these instructions, or simply if you want to update them (with your name of course), do not hesitate to mail me.
error: "xxxxx" must be specified in a variable list at enclosing OpenMP parallel pragma
Means that the xxxxx variable is not defined in the OpenMP pragma. For example, using default(none) will force the compiler to report an error if a variable is not declared private or shared here. I encountered this error with LAMMPS, compiling the USER-OMP package with Intel Compiler. The GNU compiler did not report anything, while the Intel one refused to go any further.
The previous src was :
#if defined(_OPENMP) #pragma omp parallel default(none) reduction(+:v0,v1,v2,v3,v4,v5,emsm) #endif { double qtmp,esum,v0sum,v1sum,v2sum,v3sum,v4sum,v5sum; int i,ifrom,ito,tid,icx,icy,icz,ix,iy,iz,k; loop_setup_thr(ifrom, ito, tid, inum, comm->nthreads); [...] if (VFLAG_ATOM) { v0grid[n][icz][icy][icx] = v0sum; v1grid[n][icz][icy][icx] = v1sum; v2grid[n][icz][icy][icx] = v2sum; v3grid[n][icz][icy][icx] = v3sum; v4grid[n][icz][icy][icx] = v4sum; v5grid[n][icz][icy][icx] = v5sum; } [...] }
Adding n in the pragma, ensuring it is private or shared, solved the error.
#pragma omp parallel shared(n) default(none) reduction(+:v0,v1,v2,v3,v4,v5,emsm)
undefined symbol: __intel_sse2_strcpy
I encountered this error using Intel compilers. The code was compiled using intel 12.1.3, but I loaded the libraries of the intel 11.1. When you encounter this error, make sure that your LD_LIBRARY_PATH include at first position the libraries of the compiler version used to compile the file.
configure: error: C preprocessor "icpc" fails sanity check
I got this error when compiling R. I just inverted CXX and CPP. If you still get this error, try using CXXCPP=“icpc -E” on the same line than the configure, export often do not work.
./configure --prefix=/..... --... CXX=icpc CXXCPP="icpc -E"
/usr/include/c++/4.4.1/cmath(500): error: identifier "__builtin_fpclassify" is undefined.
I encountered this error when compiling Boost or Mira. This is one of the most annoying error, with no solutions expect the following : you cannot compile them using Intel 11.x Compiler, you NEED to update to 12.x or even 13.x. I never encountered this error anymore using Intel 13.x.
ffi64.c: error: identifier "__m128" is undefined
This error came from the libffi library, when compiling with intel compiler. In fact, an include was missing, the one that refers to SSE instructions. Adding xmmintrin.h solved the problem, using SSE compilation flag. It may works with SSE2 emmintrin.h file also.
error while loading shared libraries: libguide.so: cannot open shared object file: No such file or directory
This error is due to intel compiler update, from 11 to 12 : “Users may find error message about -lguide not found. This is because libgruide.a and libguide.so is deprecated in the newer releases of intel compiler suite. It has been replaced by libiomp and liboimp5 in release 12. So the option -lguide should be replaced with -liomp5 instead.”
WARNING: Target "cmTryCompileExec647732957" requests linking to directory "/user/OTB/INSTALL_DIR/lib". Targets may link only to libraries. CMake is dropping the item. CMake Error at CMake/ImportGdal.cmake:166 (MESSAGE): OGR MESSAGE: Change Dir: /user/OTB/OTB_BINARY_DIR/CMake/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/gmake "cmTryCompileExec647732957/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec647732957.dir/build.make CMakeFiles/cmTryCompileExec647732957.dir/build gmake[1]: Entering directory `/user/OTB/OTB_BINARY_DIR/CMake/CMakeFiles/CMakeTmp' /user/OTB/INSTALL_DIR/cmake-2.8.10.2/bin/cmake -E cmake_progress_report /user/OTB/OTB_BINARY_DIR/CMake/CMakeFiles/CMakeTmp/CMakeFiles
The “Targets may link only to libraries. CMake is dropping the item.” means you gave cmake the lib directory, but cmake want the lib directly : if you give hime /soft/mysoft/lib or /soft/mysoft/lib64, it will not work. You need to specify the file corresponding to the lib itself : /soft/mysoft/lib/mylib.so.