Catastrophic error: could not set locale “” to allow processing of multibyte characters

As mensagem de erro de compilação dos compiladores da Intel são bastante interessantes: “Catastrophic error…”, ou “Erro catastrófico…” 🙂

Esse erro apareceu quando executei o comando “make” para compilar um código fonte em uma máquina Linux (Ubuntu 11.04) utilizando os compiladores da Intel (ifort/icc). Esse erro apareceu porque o Makefile não conseguiu determinar qual é o “idioma” do terminal, muito embora a variável “LANG” estivesse ajustada para “en_US.UTF-8” (LANG=en_US.UTF-8).

A solução foi ajustar mais uma variável de localização, a “LC_ALL” com o mesmo valor de “LANG”, ou seja:

$ export LC_ALL=en_US.UTF-8

Você pode colocar no seu .bashrc ou ainda em /etc/bash.bashrc, e problema resolvido!

Referência:

 

Erro: cannot open source file “asm/param.h”

Quando fui compilar o MPICH2 no meu notebook, ao rodar o comando make, me deparei com a seguinte mensagem de erro:

/usr/include/linux/param.h(4): catastrophic error: cannot open source file "asm/param.h"
  #include <asm/param.h>
                        ^

Isso aconteceu porque a versão da asm* instalada no meu Ubuntu 11.04 não era a mesma que o MPICH2 estava procurando. Para resolver este problema, basta criar um link simbólico do asm-generic para o asm:

sudo ln -s /usr/include/asm-generic /usr/include/asm

Depois, basta rodar o cmando make novamente para recompilar o MPICH2.

*ASM:

Procurando sobre o ASM, decobri que ele é um conjunto de funções geralmente escrito em linguagem Assembly (no linux utilizado em linguagem C) para facilitar a portabilidade do kernel para outros tipos de sistemas/plataformas.

Referências:

Erro: cannot open source file “asm/errno.h”

Se você está tentando compilar algum programa em linguagem C ou que precisa ler algum reader do sistema escrito em linguagem C e o compilador fortran da Intel (ifort) não consegue encontrar o header correto (no caso errno.h) e recebe o seguinte erro:

catastrophic error: cannot open source file "asm/errno.h"

Pode ser que você não tenha as bibliotecas extras do GCC instaladas por completo no seu sistema. Para resolver, basta instalar o pacote gcc-multilib:

$ sudo apt-get install gcc-multilib

Referência: http://secure-software.intel.com/en-us/forums/showpost.php?p=149314