I work at an engineering company. Here, we use a Linux host where are installed licenses of an engineering commercial software, called Abaqus.
Abaqus has a "make" procedure, that makes executable programs using a user soubroutine source code, or the correspondent object file. Here, Abaqus makes use of icpc/ifort compiler to compile C/Fortran codes. My program is written in Fortran, but it uses modules, so instead of using the "make" procedure with the source code of the main program, I precompiled the modules, then compiled the main program (both using ifort), and finally tried the "make" procedure with the object file (according to Abaqus Documentation, that is completely possible).
The problem is that, apparently, during the make procedure, Abaqus needs to compile an internal source code, in C language, and icpc gives this error: Could not open source file "limits.h" . Here goes a copy of the terminal:
tm@master1:/data/users/tm> abaqus make job=abqmain.o
Abaqus JOB abqmain
Begin Compiling User Post-Processing Program
Fri 03 May 2013 02:47:38 PM CEST
icpc: Command line warning: ignoring option '-c'; no argument required
/usr/include/limits.h(125): catastrophic error: could not open source file "limits.h"
# include_next <limits.h>
compilation aborted for /data/users/tm/main_6425.C (code 4)
Abaqus Error: Problem during compilation - /data/users/tm/TM/1_Rchar_Calibration/Fortran/main_6425.C
The Abaqus Make execution procedure exited with errors
Apparently, it's an icpc issue, but I'd rather do not change the Abaqus compilator to gcc.
I searched on the internet, and I found a possible solution, that would be the command:
But I doesn't really know what this command does, and also I don't know if it will actually work. I found it in the end of this page, under "Common Problems": http://www.gentoo-wiki.info/HOWTO_ICC_and_Portage
I am afraid to damage the company's host if I use this command. Also, I currently don't have permission to do it, so I have to be pretty sure this is the solution before asking for permission.
Can anyone help me? That solution really works? Is there someway to "undo" the command, so I can run it and latter undo it? Also, does someone know if there is an alternative, or will I have to use gcc?