Guia de instalação e uso do ambiente semifinal do NOI Linux 2.0 CSP Olympiad

A diferença entre pessoas antigas e novas

A seguir estão as mudanças que podem fazer com que os hábitos que você formou na versão antiga do NOI Linux sejam derrubados na nova versão.

  • GUIA removido
  • De um sistema de 32 bits para um sistema de 64 bits, você precisa observar que o ponteiro agora ocupa 8 bytes em vez de 4 bytes.
  • Versão atualizada do compilador
  • Por padrão, a opção [Novo arquivo] não está disponível ao clicar com o botão direito.
  • Alterar o diretório da área de trabalho para chinês pode causar falha na execução de alguns programas.

Principais mudanças

  • O sistema é baseado no Ubuntu 20.04 (64 bits)
  • g++ atualizado para 9.3.0
  • Muitos editores adicionados, como Sublime, VSCode, Code::Blocks

Instalar

Não há diferença da versão antiga. O principal é que o site oficial diz para desconectar a rede durante a instalação. Você pode desconectar a placa de rede virtual ao instalar o software da máquina virtual.

Editar: O sistema agora foi usado para CSP e NOIp. Não está claro se as atualizações on-line variam de centro de exames para centro de exames e como implementar o NOI. Se você puder atualizar online, é altamente recomendável usar o VSCode e instalar o plug-in C/C++ para programação.

Catálogo chinês

Se você optar por instalar este sistema em chinês, o diretório da área de trabalho estará em chinês.

Então isso traz muitos problemas. Primeiro, é muito problemático para você digitar no terminal. Segundo, alguns programas podem não ser usados.

Por favor, não crie arquivos de programação na área de trabalho para evitar problemas desnecessários.De acordo com meus testes, sabe-se que haverá problemas com a compilação de Code::Blocks e Gedit.

Menu do botão direito para criar um novo arquivo

Se necessário, você pode inseri-lo no terminal

xdg-user-dirs-update --set TEMPLATES ~/Templates/
touch ~/Templates/newfile

É isso.

Em seguida, reinicie o gerenciador de arquivos (você pode acessá-lo através do terminal  killall nautilus) e você verá que [Novo Arquivo] está de volta ao menu do botão direito.

papel de parede

O papel de parede padrão é um papel de parede preto puro extremamente feio? Não importa, você pode entrar em [Configurações - Plano de fundo] para alterá-lo.

Existem papéis de parede interessantes, como este:

editor

Além disso, gosto muito do GUIDE e não entendo por que ele foi excluído. Talvez seja desconfortável em muitos lugares, mas ele pode definir opções de compilação para cada arquivo de forma independente e não requer configuração adicional. Para mim, Isso é realmente útil para jogadores que alteram frequentemente as opções de compilação de seu código.

De modo geral, não acho que deva demorar mais de 5 minutos na sala de exame para configurar o ambiente de edição. Especialmente para competições como NOI, você não pode tocar no teclado ou fazer login no sistema antes do início do exame, portanto, qualquer tempo gasto configurando essas coisas consumirá seu tempo efetivo de competição. Recomendo usar um que possa ser configurado rapidamente e não seja óbvio Basta diminuir a eficiência da codificação. Portanto, não apresentarei aqui métodos de uso que exigem muita configuração.

Além disso, acho que as fontes padrão desses editores são muito bonitas. Se você não acha que elas ficam bem, você mesmo pode descobrir como alterar as fontes.

Além disso, alguns dos seguintes editores irão congelar ao abrir arquivos grandes. Teste-os com cuidado e evite abrir amostras muito grandes sem salvar o código para evitar perda de dados .

Se estiver realmente travado, esta versão do Ubuntu exibirá um prompt que não responde após um longo período de tempo. Na maioria dos casos, você não precisa fazer isso manualmente. Claro, se você não ouvir  killall e houver códigos não salvos nele, você só pode esperar um pouco mais. Aguarde alguns minutos para ver se ele pode ser restaurado e salve-o rapidamente. Caso contrário, envie-o completamente.

Código VSC

Infelizmente, o plug-in VSCode C/C++ fornecido pelo CCF é uma versão de instalação online, que é completamente inutilizável em competições reais, então... Ouvi dizer que você quer um VSCode super fácil de usar? Sem chance!

Dito isto, VSCode sem Intellisense e Debug também pode ser usado. Embora a compilação exija digitação manual na linha de comando e a depuração exija linha de comando gdb, ainda é possível em termos de destaque de sintaxe, recuo automático e preenchimento de colchetes.

Claro, você também pode escrever JSON à mão para implementar uma instrução de compilação e execução. Não vou entrar em detalhes. É bastante complicado. Basta pesquisar on-line.

Você também pode mexer em várias coisas nas configurações, a mais útil é o salvamento automático.

Vale ressaltar que sua função de busca integrada é muito fácil de usar e muito eficaz na verificação de nomes duplicados de variáveis. As três opções à direita representam, respectivamente, se deve fazer distinção entre maiúsculas e minúsculas, se deve forçar a pesquisa por palavras (com caracteres em branco em ambos os lados) e se deve ativar expressões regulares.

Basicamente, o uso normal é assim, usando o terminal integrado para compilar e executar todos os arquivos.

vantagem
  • Possui destaque de sintaxe simples e uma boa experiência de edição.
  • Possui seu próprio gerenciador de arquivos, que pode criar facilmente novos arquivos.
  • Quase nenhuma configuração necessária
  • Traga seu próprio terminal
deficiência
  • Ele não vem com uma função de compilação. Se implementado, será necessário JSON manuscrito.
  • Nenhuma função de depuração integrada

Texto sublime

É semelhante à experiência do VSCode? No entanto, ele vem com suas próprias instruções de compilação de arquivo único. Mas não usei, então não vou comentar muito.

Mas é muito semelhante ao VSCode. Se quiser personalizar a compilação, você terá que escrever JSON manualmente.

vantagem
  • Possui destaque de sintaxe simples e uma boa experiência de edição.
  • Quase nenhuma configuração necessária
deficiência
  • A modificação das opções de compilação requer JSON manuscrito
  • Nenhuma função de depuração integrada

Geany

Geany basicamente funciona imediatamente, mas existem alguns plug-ins que você pode ativar e que considero ótimos.

[Tools-Plug-in Manager] Você pode abrir plug-ins nele

Alguns úteis são:

  • 【Fecho automático】Conclusão do suporte
  • 【Marcação automática】 realce de símbolo

F9 para compilar, F5 para executar, um terminal aparecerá durante a execução. Observe que não há compilação + execução, você precisa pressionar ambos.

As opções de compilação podem ser definidas em [Generate-Set Build Command].

No entanto, uma das coisas mais problemáticas é que as exibições de Aviso e Erro são iguais, então dê uma olhada.

Em seguida, você pode clicar nas setas para cima e para baixo na coluna abaixo que diz compilador. Ao clicar nele, haverá um terminal integrado na parte inferior. Você também pode esticar a coluna inferior para exibir tudo.

vantagem
  • Possui destaque de sintaxe simples e uma boa experiência de edição.
  • Quase nenhuma configuração necessária
  • Traga seu próprio terminal
deficiência
  • Nenhuma função de depuração integrada

Código::Blocos

Como essa coisa parece vir com depuração integrada, concentrei-me em pesquisá-la.

Em primeiro lugar, se você abrir um único arquivo, haverá apenas opções de compilação padrão e não poderá ser depurado, por isso é inevitável criar um novo arquivo de projeto.

Primeiro selecione [File-New-Project-Console Application] para criar um novo projeto, depois selecione o nome da pergunta para o título e, em seguida, selecione o diretório pai da pasta para armazenar a pergunta especificada pelo seu concorrente na pasta e deixe o resto por padrão.

Então você tem um projeto. Em primeiro lugar, você descobrirá que ele cria um main.cpp para você. Como as competições OI geralmente exigem um nome fixo para coletá-lo corretamente, é necessário alterar o nome. Primeiro, feche este arquivo. Em seguida, clique com o botão direito no arquivo à esquerda, selecione [Renomear arquivo...] e altere-o para o nome da pergunta.

Em seguida, a configuração básica está feita.

O próximo passo é definir as opções de compilação, desta vez clique com o botão direito no ícone do projeto à esquerda e clique em [Propriedades...].

Em seguida, clique em [Build Targets], clique em [Build options...] nesta página, e você pode definir opções de compilação para [Debug] e [Release] respectivamente, e essas duas coisas podem ser entendidas como dois modos, Durante a competição, você pode usar [Debug] como aquele com opções semelhantes ativadas  -g para solução de problemas, e as opções de compilação mostradas na página de perguntas [Release] refletem o efeito real. (Claro, você também pode usar [Adicionar] à esquerda para adicionar mais modos de acordo com suas necessidades.)

Claro, as opções fornecidas não precisam necessariamente ser usadas. Você pode usar [Outras opções do compilador] na próxima coluna para escrever diretamente.

Agora que está configurado, você pode alternar o modo de compilação na caixa de opções superior e, em seguida, pressionar a engrenagem amarela e a seta verde para representar compilar, executar e compilar e executar, respectivamente.

Em seguida, a seta vermelha à direita pode iniciar a depuração. Durante a depuração, você pode clicar em [Watches] no ícone com um bug no computador no lado direito da caixa de depuração para abrir as variáveis ​​​​para visualizar. Observe que a compilação deve ser habilitada durante a depuração  -g (compilação no modo [Debug])

Resumindo, o uso específico é bastante complicado, afinal este é um IDE enorme e você pode explorá-lo sozinho.

Claro, você também pode usá-lo apenas para depuração, criar um novo projeto e deixar outras configurações inalteradas. Se necessário, você pode copiar o código e ajustá-lo. Isso também é possível. De qualquer forma, este parece ser o único que pode ser usado para depuração.

vantagem
  • Vem com função de depuração
  • Com destaque de sintaxe simples, a experiência de edição é boa
deficiência
  • O recuo automático pode ser um pouco estranho (?)
  • A configuração é problemática, você deve configurar um projeto. Relativamente volumoso.

outro

Vim e gedit (agora chamados de editores de texto) e Emacs ainda estão lá. Continue usando-os se gostar deles. Não deve haver muitas mudanças.

Resumir

O VSCode é fornecido, mas nenhum plug-in VSCode C/C++ que possa ser usado normalmente é fornecido.

tradutor

O compilador foi atualizado para g++ 9.3.0. O que pode ser feito?

Desinfetante poderoso

Adicionar a opção de compilação  -fsanitize=address,undefined permite que você experimente uma excelente experiência de verificação de RE e UB.

Claro, se o compilador e o vinculador estiverem separados, você precisará adicioná-lo ao vinculador  -lasan -lubsan antes que ele possa ser usado (referindo-se a Code::Blocks)

Pode ser realizado: matriz fora dos limites RE direto, estouro de número inteiro assinado RE direto,  void função cujo valor de retorno não é  igual return ao retorno RE direto... Resumindo, você pode verificar RE e UB e dizer em qual linha o erro é  . Acredite em mim, é viciante.

otimização

A otimização do compilador é mais inteligente, embora a percepção possa não ser forte

C++14/17

Deverá ser utilizado em competições oficiais no futuro?

Editar: Confirmado: C++ 14 será usado no futuro

Árbitro

o árbitro parece ter sido atualizado? Deixe-me ver a diferença.

O limite máximo de memória foi alterado de 512 MB para 2.048 MB. No entanto, isso parece ter sido modificado internamente (consulte o limite de espaço anterior de 1 GB no NOI)?

Parece que o ícone também foi alterado.

Portanto, parece não haver diferença.

Comandos de terminal

Basicamente, permanece inalterado e tudo o que é comumente usado pode ser usado. Você não pode usar nada que não funcione, exceto...

ssh

Fico feliz em ouvir e ver.jpg

Na verdade,  ssh o comando não foi excluído, mas o serviço ssh não está aberto, ou seja, você ainda pode fazer ssh para outros sistemas, mas este sistema não pode ser ssh.

Tentei abrir uma rede para a máquina virtual e a máquina física para testar, mas não funcionou.

Acho que você gosta

Origin blog.csdn.net/abilix_tony/article/details/131949315
Recomendado
Clasificación