[RUBY] Vérification de l'environnement passionnant avec mkmf

Il y a «mkmf» dans la bibliothèque attachée standard de Ruby.

Il s'agit à l'origine d'une bibliothèque de pièces jointes standard Ruby pour créer des Makefiles qui créent des bibliothèques d'extensions Ruby, mais comme elle est créée merveilleusement pratique et flexible par les mains des développeurs Ruby, elle peut également être utilisée pour vérifier facilement l'environnement de la machine Il semble qu'il puisse être utilisé.

"Je veux vérifier si l'environnement peut accepter des membres st_ctim.tv_nsec avec la structure struct stat." => have_struct_member("structstat","st_ctim.tv_nsec")

"Je veux utiliser si mecab peut être utilisé" => have_header('mecab.h')

"Je ne peux m'empêcher de me demander s'il existe une bibliothèque libc et printf peut être utilisée." => have_library("c","printf")

"Je veux écrire ce que j'ai vérifié jusqu'à présent sous forme de fichier d'en-tête" => create_header

Ce fichier d'en-tête est écrit comme #define HAVE_STRUCT_STAT_ST_CTIM 1 s'il a un membre struct stat st_ctim.tv_nsec. Après cela, si vous # incluez le fichier d'en-tête et branchez avec # ifdef etc., vous pouvez écrire du code qui peut être utilisé de manière portable dans n'importe quel environnement. (Enquête requise) Même si vous ne prenez pas la peine de l'écrire dans l'en-tête, $ defs aura "[" -DHAVE_STRUCT_STAT_ST_CTIM " Il est conçu pour être facile à utiliser comme option de compilation car le tableau est compressé comme] `. Facile à utiliser. Dites simplement «require'mkmf».

Puisqu'il s'agit de code Ruby, les instructions if peuvent être utilisées comme vous le souhaitez, et certaines des configurations qui sont compliquées dans le coin de votre maison peuvent être soigneusement organisées en code Ruby.

Si vous avez des commentaires tels que "Ceci est plus polyvalent et hautement fonctionnel", j'aimerais avoir de vos nouvelles, mais je pense que "l'attachement standard" est un avantage considérable. Ruby est génial. (Et si on me disait "N'utilisez pas mkmf dans ce but!")

Recommended Posts

Vérification de l'environnement passionnant avec mkmf
Créer un environnement de vérification des opérations TensorFlow avec Docker
Vérifier la conformité avec les exercices orientés objet
Vérifiez la valeur CSV avec RSpec
Comment vérifier les nombres entiers avec ruby
Préparer l'environnement Python3 avec CentOS7
[Docker] Construction de l'environnement Rails 5.2 avec docker
Créer un environnement Docker avec WSL
[Java 8] Suppression en double (et vérification en double) avec Stream
Créez un environnement Vue3 avec Docker!
Créer un environnement local Couchbase avec Docker
Créer un environnement Node.js avec Docker
Créer un environnement Tomcat 8.5 avec Pleiades 4.8
[Java] Vérification de l'existence des éléments avec Stream
Créer un environnement de vérification SolrCloud avec Docker
Créer un environnement de développement Jooby avec Eclipse
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Vérifier quand moss avec SimpleDateFormat parse
Créez un environnement Docker + Laravel avec Laradock