1.1 Linux

As ferramentas e bibliotecas necessárias estão disponíveis nos repositórios de pacotes das principais distribuições Linux.

A seguir veremos como instalar os pacotes no Ubuntu. Entretanto, em outras distribuições há pacotes equivalentes e o procedimento é semelhante.

Em um terminal, execute os passos a seguir.

  1. Atualize o sistema:

    sudo apt update
  2. Instale o pacote build-essential (GCC, GDB, Make, etc):

    sudo apt install build-essential
  3. Instale o CMake e Git:

    sudo apt install cmake git
  4. Instale as bibliotecas GLEW, SDL 2.0 e SDL_image 2.0:

    sudo apt install libglew-dev libsdl2-dev libsdl2-image-dev

Habilitando o OpenGL

O suporte ao OpenGL já vem integrado no kernel do Linux através dos drivers de código aberto da biblioteca Mesa (drivers Intel/AMD/Nouveau).

Para as placas da NVIDIA e AMD há a possibilidade de instalar os drivers proprietários do repositório nonfree (repositório restricted no Ubuntu), ou diretamente dos sites dos fabricantes: AMD ou NVIDIA. Os drivers proprietários, especialmente os da NVIDIA, geralmente têm desempenho superior aos de código aberto.

Para verificar a versão do OpenGL suportada pelos drivers instalados, instale o pacote mesa-utils:

sudo apt install mesa-utils

Execute o comando:

glxinfo | grep version

O resultado deverá ser parecido com o seguinte:

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 4.1
    Max compat profile version: 4.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL core profile version string: 4.1 (Core Profile) Mesa 20.2.1
OpenGL core profile shading language version string: 4.10
OpenGL version string: 4.1 (Compatibility Profile) Mesa 20.2.1
OpenGL shading language version string: 4.10
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 20.2.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
Importante

A versão em OpenGL version string ou OpenGL core profile version string deve ser 4.1 ou superior. Caso não seja, instale os drivers proprietários e certifique-se de que sua placa de vídeo suporta OpenGL 4.1.

Atualizando o GCC

As atividades farão uso de um framework de desenvolvimento que exige um compilador com suporte a C++17 e suporte parcial a C++20. Esse requisito é atendido se instalarmos a versão mais recente do GCC. No momento da escrita deste texto, a versão mais recente do GCC é a 10.2.

Nas versões mais recentes do Fedora e Manjaro, o GCC 10 já é a versão padrão instalada. No Ubuntu, apenas o Ubuntu 20.10 (Groovy Gorilla) em diante vem com a versão mais recente do GCC. Siga os passos a seguir caso sua distribuição Ubuntu seja de uma versão anterior, ou caso a saída de gcc --version mostre um número de versão menor que 10.2.

Em um terminal, adicione o PPA ubuntu-toolchain-r/test:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

Instale o GCC 10:

sudo apt install gcc-10 g++-10

A instalação do GCC 10 não substituirá a versão mais antiga já instalada. Entretanto, é necessário criar links simbólicos do gcc e g++ para a versão mais recente. Uma forma simples de fazer isso é usando o update-alternatives. Primeiro, execute o comando a seguir para definir um valor de prioridade (por exemplo, 100) para o GCC 10:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10

Execute o comando a seguir para escolher qual a versão do GCC instalada no sistema será utilizada:

sudo update-alternatives --config gcc

Na lista de versões instaladas, selecione o GCC 10. Isso criará os links simbólicos.

Para testar se a versão correta do GCC está sendo utilizada, execute o comando g++ --version. A saída deverá ser parecida com a seguinte:

g++ 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Dica

Opcionalmente, instale o Ccache para acelerar a recompilação das atividades:

  1. Instale o pacote ccache:

    sudo apt install ccache
  2. Atualize os links simbólicos dos compiladores instalados:

    sudo /usr/sbin/update-ccache-symlinks
  3. Insira a seguinte linha no final do arquivo ~/.bashrc de modo a prefixar o caminho do Ccache no PATH:

    export PATH="/usr/lib/ccache:$PATH"
  4. Reabra o terminal ou execute source ~/.bashrc. Para testar se o Ccache está ativado, execute o comando which g++. A saída deverá incluir o caminho como Ccache, como a seguir:

    /usr/lib/ccache/g++`.

Instalando o Emscripten

  1. Vá para o seu diretório home:

    cd
  2. Faça uma cópia do SDK do Emscripten:

    git clone https://github.com/emscripten-core/emsdk.git
  3. Entre no diretório recém-criado:

    cd emsdk
  4. Baixe e instale o SDK atualizado (latest):

    ./emsdk install latest
  5. Ative o SDK latest para o usuário atual. Um arquivo .emscripten será gerado:

    ./emsdk activate latest
  6. Configure as variáveis de ambiente e PATH do compilador para o terminal atual:

    source ./emsdk_env.sh

Execute o comando emcc --version. A saída deverá ser parecida com a seguinte:

emcc (Emscripten gcc/clang-like replacement) 2.0.11 (6e28e4fa4fa1bc50d58b9ddbbb9603a3cf21ea9e)
Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt)
This is free and open source software under the MIT license.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Importante

Refaça o passo 6 sempre que abrir um terminal. Como alternativa, insira o comando a seguir na última linha do arquivo ~/.bashrc para que o script seja executado automaticamente toda vez que um terminal for aberto:

source ./emsdk/emsdk_env.sh > /dev/null 2>&1

O trecho > /dev/null 2>&1 serve para omitir a saída padrão (stdout) e erro padrão (stderr).