Il -static
flag costringe il linker ad accettare solo librerie statiche e non librerie condivise. In altre parole non richiede una dipendenza dalle librerie dinamiche in fase di esecuzione per funzionare. Molto probabilmente mongocxx
ha alcune dipendenze. Per ottenere un collegamento statico è necessario che le versioni di archivio (.a) delle tue librerie esistano sul sistema.
L'altro possibile problema è che l'ordine delle librerie statiche nella riga di comando del linker è importante, quindi potrebbe anche essere un problema se esiste una dipendenza da diverse librerie statiche. Il linker elaborerà le librerie nell'ordine in cui sono nella riga di comando e da ogni lib statica estrarrà solo quei simboli richiesti (con tutte le informazioni che il linker ha in quel momento)
Usa nm . Questo ti darà i nomi dei simboli.