J'ai un projet exécutable Windows qui se lie à une bibliothèque statique (.lib) construite avec GCC 6 (MinGW). L'erreur suivante se produit pendant la compilation :
LNK2019 unresolved external symbol __popcountdi2 referenced in function ...
Le symbole est lié en raison de l'utilisation d'une fonction intégrée de GCC. __builtin_popcount()
qui réside dans libgcc. Cependant, malgré l'ajout de -static-libgcc
comme argument à gcc, le problème persiste.
Existe-t-il un moyen pour que ma bibliothèque (.lib) contienne des parties de libgcc plutôt que d'exiger que libgcc soit sur le système pour qu'un exécutable puisse être lié ? Y a-t-il un moyen de contourner l'obligation de livrer la bibliothèque avec libgcc ?
__builtin_popcount()
n'est pas la seule fonction intégrée que j'utilise actuellement. La bibliothèque fait usage de __builtin_bswap32()
qui ne semble pas rencontrer ce problème.
J'utilise GCC 6.1.0. Mise à jour vers 6.2.0 ; même problème.