Uso de bibliotecas Arduino pré-compiladas
Para melhorar o tempo de compilação de projetos grandes no Arduino, você pode usar um dos recursos mais recentes introduzidos na Arduino IDE (>=1.8.6), bibliotecas estáticas (pré-compiladas) para seus Sketches Arduino.

Por que usar bibliotecas pré-compiladas?
-
A biblioteca pré-compilada permite compartilhar as funções da biblioteca sem expor o código-fonte.
-
A única limitação das bibliotecas pré-compiladas é que elas só são válidas para placas ou MCUs para as quais foram compiladas.
Primeiros Passos
Vamos pegar uma biblioteca Arduino como exemplo e convertê-la em uma biblioteca pré-compilada. Aqui vou usar Seeed_Arduino_LIS3DHTR como biblioteca Arduino e Wio Terminal como opção de placa.
ETAPA 1. Configurações da biblioteca Arduino
Navegue até o caminho raiz da biblioteca, abra o arquivo library.properties, adicione o seguinte e salve o arquivo.
dot_a_linkage=true

ETAPA 2. Configuração da Arduino IDE
Abra a Arduino IDE e navegue até Settings. Certifique-se de que "Show verbose output during: compilation and upload" esteja marcado.

ETAPA 3. Obtendo o local temporário de compilação e o flag de framework da placa
Selecione Wio Terminal como placa. Compile qualquer sketch que tenha uma diretiva #include para sua biblioteca. Este pode ser apenas um sketch mínimo. No meu caso, é #include<LIS3DHTR.h>.
Após a compilação, verifique a janela de log de compilação e encontre o local da pasta temporária de compilação. Isso deve ser impresso no comando final da saída. Por exemplo, no meu caso o comando é:
/Users/ansonhe/Library/Arduino15/packages/Seeeduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-size -A /var/folders/7g/10kskmw90bg08j_g_r7flwq40000gn/T/arduino_build_37343/pre-compile.ino.elf
E então, o caminho temporário de compilação é:
/var/folders/7g/10kskmw90bg08j_g_r7flwq40000gn/T/arduino_build_37343

Copie esse caminho, pois ele será usado depois. Outra coisa a notar é encontrar o flag -mcpu= para obter o flag de framework da placa compilado para a placa selecionada. No meu caso, o Wio Terminal é rotulado como:
-mcpu=cortex-m4

ETAPA 4. Copiar o arquivo .a para a pasta da biblioteca
Navegue até a pasta do caminho temporário de compilação, depois para libraries -> Seeed_Arduino_LIS3DHTR e você deverá ver um arquivo Seeed_Arduino_LIS3DHTR.a.

Copie o arquivo Seeed_Arduino_LIS3DHTR.a da pasta {temporary build folder}/libraries/{library name} para a subpasta Arduino/libraries/{library name}/src/{Board Framework Flag} da sua pasta de biblioteca. No meu caso, ele é colocado em src/cortex-m4.
Renomeie o arquivo .a, acrescentando "lib" no início do nome. No meu caso, ele se torna libSeeed_Arduino_LIS3DHTR.a.

ETAPA 5. Adicionando o flag de pré-compilação
Agora, podemos voltar para o library.properties, remover dot_a_linkage=true e adicionar os seguintes flags:
precompiled=true
ldflags=-lSeeed_Arduino_LIS3DHTR
onde o ldflags é -l+{library name}.
Observe que você não especifica a parte "lib" do nome do arquivo no flag.

Agora, você pode remover os arquivos .cpp da pasta src da biblioteca e a Arduino IDE usará a biblioteca pré-compilada!
Com Problemas?
Por alguns motivos, algumas placas podem exigir que o arquivo .a fique mais dentro da pasta src. Por exemplo, esse é o caso do Wio Terminal. Se você estiver tendo o mesmo problema, por favor siga adiante.
Analisando as informações do log de compilação, você verá um caminho que a IDE está procurando:

/Users/ansonhe/Documents/Arduino/libraries/Seeed_Arduino_LIS3DHTR/src/cortex-m4/fpv4-sp-d16-hard" does not exist
Portanto, só é necessário colocar o arquivo libSeeed_Arduino_LIS3DHTR.a dentro de fpv4-sp-d16-hard em cortex-m4.

Agora, o Arduino irá localizar o caminho da biblioteca pré-compilada!
Aqui também fornecemos um exemplo que usa biblioteca estática aqui. Use-o também como referência.
Recursos
FAQ
- Uma coisa a notar é que esse recurso de biblioteca pré-compilada só oferece suporte à Arduino IDE >=
1.8.6, portanto, atualize para a versão mais recente da Arduino IDE para evitar esse erro.
Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.