Erro de linker passando rapidamente

2

Estou construindo um projeto com o CMake. Eu sou capaz de construir tudo, mas estou recebendo um longo erro de vinculador.

Eu tentei canalizar o make para less , mas fazendo isso eu só recebo duas telas, uma que mostra o progresso da compilação e uma que mostra o erro do vinculador truncado. Como posso diminuir a taxa de rolagem do erro do vinculador ou obter acesso a ele?

Eu também tentei

make > buildinfo.txt

mas, novamente, isso só me mostrou o progresso da criação. Não havia nada lá sobre o erro do linker.

    
por Adam 02.02.2017 / 05:01

1 resposta

2

Os erros estão sendo exibidos no STDERR (descritor de arquivo 2), não no STDOUT (descritor de arquivo 1); como você está redirecionando / piping o STDOUT somente, você não vai se apossar do conteúdo STDERR. Então você precisa de alguma maneira de lidar com o STDERR.

Se você deseja salvar o STDOUT e o STDERR em um arquivo:

make &>buildinfo.txt

POSIX-ly:

make >buildinfo.txt 2>&1

Apenas o STDERR:

make 2>buildinfo.txt

acima irá imprimir STDOUT no terminal (assumindo que FD 1 está anexado ao terminal), se você não quiser, descarte-o:

make >/dev/null 2>buildinfo.txt

Agora, para canalizar o STDOUT e o STDERR para alguns outros comandos STDIN via pipefs ( | ), por exemplo, para less :

make |& less

POSIX-ly:

make 2>&1 | less

Apenas o STDERR:

make 2>&1 >/dev/null | less
    
por heemayl 02.02.2017 / 05:10