Utiliser des packages binaires sans code source dans Go
Distribuer des bibliothèques de logiciels sans code source est une exigence courante, mais cela peut-il être réalisé avec Go ? Cette question a intrigué de nombreux développeurs Go, ce qui a conduit à l'exploration de diverses approches.
Une tentative consiste à créer des fichiers sources factices avec des horodatages plus anciens que les packages binaires. Bien que cette approche puisse sembler viable, elle présente un problème potentiel si les fichiers sources factices sont accidentellement mis à jour, ce qui entraîne un package invalide.
Distribuer les sources est une nécessité ?
Le compilateur Go nécessite explicitement à la fois le code source et les packages binaires pour une compilation réussie. L'absence de disposition directe pour l'utilisation des fichiers .a soulève uniquement la question de savoir pourquoi Go ne fournit pas cette fonctionnalité.
Le rôle de l'outil go
Le go L'outil, bien que pratique, ne remplace pas le compilateur Go, l'éditeur de liens ou le langage lui-même. L'outil facilite le processus de création, de test et de packaging du code Go, mais il s'appuie en fin de compte sur les composants sous-jacents pour effectuer le gros du travail.
Solution pragmatique
Malgré les défis, il existe une solution pratique qui vous permet de distribuer des packages binaires sans l'intégralité du code source :
Distribuez les fichiers .a avec des fichiers sources factices dont les horodatages sont plus anciens que ceux des packages binaires. Assurez-vous que tous les fichiers pertinents sont placés aux emplacements prévus, et vos utilisateurs peuvent ensuite créer et utiliser votre package via la ligne de commande en utilisant directement le compilateur.
Remarque sur les sources factices
Les versions plus récentes de l'outil go ont amélioré leurs capacités de détection, exigeant que tous les fichiers portant les noms de fichiers appropriés et les horodatages plus anciens se trouvent dans le dossier src, même s'ils sont vides. Cela élimine le besoin de gestion de l'horodatage, ce qui rend cette solution plus simple.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!