Caracteres estranhos no terminal durante erro de compilação

3

(Esta não é uma questão sobre um erro de compilação, mas sobre a configuração do terminal Linux.)

Durante qualquer erro de compilação, a declaração de erro não exibe corretamente os fragmentos de código:

In member function â:
error: â was not declared in this scope

Existe uma configuração para que meu terminal seja exibido corretamente:

In member function 'foo()':
error: 'endl' was not declared in this scope

Mais informações: Isso é exibido corretamente no modo de compilação do Emacs, mas até salvar esse buffer em um arquivo temporário e lê-lo na linha de comando produz os caracteres acima. A leitura desse arquivo no Vim mostra que os caracteres estranhos representam mais de uma coluna de texto.

    
por chrisaycock 29.03.2011 / 19:12

2 respostas

2

Acho que você deve primeiro verificar as configurações de localidade com:

locale

Se não estiver alinhado com o conjunto de caracteres do arquivo, você pode estar recebendo erros, como tal.

file yoursrcfile

deve fornecer as informações necessárias.

Há também o caso de que seu compilador esteja sendo executado com uma localidade diferente. Você pode solucionar isso definindo

export LC_ALL=en_US

para sua sessão bash. Isso pode ser colocado na frente do comando de compilação também. por exemplo.

LC_ALL=en_US gcc -o outfile srcfile.c

Mas o efeito nesse caso será apenas no comando subsequente.

Outro caso é que provavelmente o seu código-fonte pode ter sido editado no Windows, talvez? De qualquer forma, pode conter alguns personagens estranhos por algum motivo.

Você deve verificá-lo no vim ativando todos os caracteres

:set invlist

Espero que isso ajude!

    
por 30.03.2011 / 01:10
0

Se a variável de ambiente LANG for

LANG=en_US.UTF-8

em seguida, no menu PuTTy Window Translation, em

"Dados recebidos supostamente em qual conjunto de caracteres", selecione

"UTF-8".

ou defina LANG como apenas

LANG=en_US

ou

unset LANG
    
por 21.06.2014 / 17:34