Cling, rode C/C++ como script

Baseado em Clang e com a estrutura do LLVM


Cling, rode C/C++ como script


Como o IntelliSense do seu IDE/Editor consegue saber se o código está certo sem nem compilar ? Isso é possível graças à tecnologia estilo cling.

Cling é um interpretador C++ interativo, construído com base nas bibliotecas LLVM e Clang. Suas vantagens sobre os intérpretes padrão são que ele tem prompt de linha de comando e usa o compilador just-in-time (JIT) para compilação. Muitos dos desenvolvedores desse tipo de aplicativos de software os chamam de compiladores interativos.

Um dos principais objetivos da Cling era fornecer uma alternativa contemporânea e de alto desempenho do primeiro interpretador C++ no projeto ROOT - CINT. A retrocompatibilidade com o CINT foi a principal prioridade durante o desenvolvimento.


Instalação

Basta fazer o download do script Python, dar permissão de execução e rodar:

wget https://raw.githubusercontent.com/root-project/cling/master/tools/packaging/cpt.py
chmod +x cpt.py
./cpt.py --check-requirements && ./cpt.py --create-dev-env Debug --with-workdir=./cling-build/

A verdade é que esse processo de construção vai demorar muito, o cling é gigante! Então veja como instalar o binário abaixo.


Existe binário para diversos sistemas operacionais incluindo o Linux . Se você quer instalar rapidamente no Ubuntu, por exemplo, faça da seguinte maneira:

De acordo com a data de publicação desse artigo essa é a versão mais recente, para outras versões e binários veja aqui .

wget https://root.cern.ch/download/cling/cling_2020-11-05_ROOT-ubuntu2004.tar.bz2
tar xvjf cling_2020-11-05_ROOT-ubuntu2004.tar.bz2
sudo mv cling_2020-11-05_ROOT-ubuntu2004/ /opt/cling
sudo ln -s /opt/cling/bin/cling /usr/local/bin/cling

Testando, rode:

cling '#include <stdio.h>' 'printf("Hello World!\n")'

Se quiser omitir o stderr, rode:

cling '#include <stdio.h>' 'printf("Hello World!\n")' 2>/dev/null

Ou ainda:

cling '#include <stdio.h>' 'printf("Hello World!\n")' 2>/dev/null | sed '$d'

Você também pode entrar num subshell rodando somente:

cling

Para mais dicas de utilização acesse os endereços:


cpp cppdaily linguagemc


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!