O
-static
sinalizador força o vinculador a aceitar apenas bibliotecas estáticas e não quaisquer bibliotecas compartilhadas. Em outras palavras, não requer uma dependência de bibliotecas dinâmicas em tempo de execução para ser executado. Muito provavelmente mongocxx
tem algumas dependências. Para obter a vinculação estática, é necessário que as versões de arquivo (.a) de suas bibliotecas existam no sistema. O outro problema possível é que a ordem das bibliotecas estáticas na linha de comando do vinculador importa, então isso também pode ser um problema se houver uma dependência de diferentes bibliotecas estáticas. O vinculador processará as bibliotecas na ordem em que estão na linha de comando e, de cada biblioteca estática, extrairá apenas os símbolos necessários (com tanta informação quanto o vinculador tiver naquele momento)
Use nm . Isso lhe dará os nomes dos símbolos.