2017-09-19 1 views
1

J'ai essayé différentes combinaisons de --dynamic_mode=fully dans la ligne de commande et linkstatic = 0 dans cc_library et cc_binary règles, mais n'ont pas réussi à éviter la construction de bibliothèques statiques (.a) lors de la construction des projets Bazel. Alors que les fichiers binaires sont effectivement liés dynamiquement, les fichiers .a sont malgré tout construits, ce qui prend beaucoup de temps et d'espace (sur le cache partagé).Comment éviter de construire des bibliothèques C++ statiques dans Bazel

Ai-je raté quelque chose?

Répondre

2

Répondre à ma propre question: il semble que le problème était le caractère générique . Il déclenche la liaison à la fois la bibliothèque statique et la bibliothèque dynamique de chaque règle cc_library. Si vous ajoutez tags = ["manual"] aux bibliothèques et construisez avec --dynamic_mode=fully, les bibliothèques .a statiques ne seront plus construites automatiquement, mais .so sera toujours créé en fonction des cibles cc_binary.