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