MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

g++ non può collegare statico libmongcxx(r3.0.2) ma il collegamento dinamico funziona

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.