2 votes

Projet MSVC manquant "__popcountdi2" lors de l'édition de liens avec une bibliothèque statique construite par GCC

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X