[RUBY] Spannende Umweltprüfung mit mkmf

Es gibt mkmf in der angehängten Standardbibliothek von Ruby.

Dies ist ursprünglich eine Ruby-Standard-Anhangsbibliothek zum Erstellen von Makefiles, die Ruby-Erweiterungsbibliotheken erstellen. Da sie jedoch von Ruby-Entwicklern wunderbar bequem und flexibel erstellt wurde, kann sie auch zum einfachen Überprüfen der Umgebung des Computers verwendet werden. Es scheint, dass es verwendet werden kann.

"Ich möchte überprüfen, ob die Umgebung st_ctim.tv_nsec-Mitglieder mit der Struktur struct stat aufnehmen kann." => have_struct_member("structstat","st_ctim.tv_nsec")

"Ich möchte verwenden, wenn Mecab verwendet werden kann" => have_header('mecab.h')

"Ich kann nicht anders, als mich zu fragen, ob es eine Bibliothek libc gibt und printf verwendet werden kann." => have_library("c","printf")

"Ich möchte das, was ich bisher überprüft habe, als Header-Datei aufschreiben." => create_header

Diese Header-Datei wird als "#define HAVE_STRUCT_STAT_ST_CTIM 1" geschrieben, wenn sie ein "struct stat st_ctim.tv_nsec" -Mitglied hat. Wenn Sie danach die Header-Datei "#" einschließen und mit "# ifdef" usw. verzweigen, können Sie Code schreiben, der in jeder Umgebung portabel verwendet werden kann. (Untersuchung erforderlich) Selbst wenn Sie sich nicht die Mühe machen, es in den Header zu schreiben, hat $ defs "[" -DHAVE_STRUCT_STAT_ST_CTIM " Es ist so konzipiert, dass es einfach als Kompilierungsoption verwendet werden kann, da das Array wie] `gepackt ist. Einfach zu verwenden. Sagen Sie einfach "require'mkmf".

Da es sich um Ruby-Code handelt, können Anweisungen, die nach Belieben verwendet werden können, und einige der Konfigurationen, die kompliziert in der Ecke Ihres Hauses gepackt sind, ordentlich in Ruby-Code organisiert werden.

Wenn Sie Kommentare wie "Dies ist vielseitiger und hochfunktioneller" haben, würde ich gerne von Ihnen hören, aber ich denke, "Standard-Anhang" ist ein beträchtlicher Vorteil. Ruby ist großartig. (Was ist, wenn Ihnen gesagt wird "Verwenden Sie mkmf nicht für diesen Zweck!")

Recommended Posts

Spannende Umweltprüfung mit mkmf
Erstellen Sie mit Docker eine TensorFlow-Betriebsüberprüfungsumgebung
Überprüfen Sie die Einhaltung objektorientierter Übungen
Überprüfen Sie den CSV-Wert mit RSpec
Wie man ganze Zahlen mit Rubin überprüft
Bereiten Sie die Python3-Umgebung mit CentOS7 vor
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Erstellen einer Docker-Umgebung mit WSL
[Java 8] Doppelte Löschung (& doppelte Überprüfung) mit Stream
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
[Java] Elementexistenzprüfung mit Stream
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Erstellen Sie mit Eclipse eine Jooby-Entwicklungsumgebung
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Überprüfen Sie, wann Moos mit SimpleDateFormat analysiert wird
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung