строит библиотеку из набора *.sci-файлов, определяющих функции в указанной директории
genlib(lib_name) genlib(lib_name, dir_name) genlib(lib_name, dir_name, Force) genlib(lib_name, dir_name, Force, verb) genlib(lib_name [,path=dir_name] [,verbose=verb] [,force=Force])
.sci
-функций, и где генерируется файл
lib
и определяющая, где будет храниться
библиотека. По умолчанию рассматривается текущая рабочая директория.
![]() | Директория dir_name directory и её lib -
и .bin -файлы должны иметь право на запись. |
%f
). Установите
его в %t
, чтобы принудить к рекомпиляции sci-файлов.
%f
).
Установите его в %t
, чтобы отобразить больше
информации во время сборки.
genlib(..)
выбирает все файлы, принадлежащие директории
dir_name
и с расширением .sci
.
Поддиректории, если они есть, никогда не рассматриваются. Если требуется,
они должны компилироваться отдельно в независимые библиотеки.
Затем создаётся редактируемый XML-файл lib
в директории
dir_name
. Имя lib_name
библиотеки
записывается в него.
Далее, для каждого .sci
-файла:
.bin
-файла в dir_name
с тем же базовым именем (что и для исходной сборки библиотеки), либо.sci
-файла было изменено
со времени предыдущей сборки,.sci
-файл скомпилирован (почти
как если бы это было с exec(..)
):
если он содержит по крайней мере один блок
function .. endfunction
, то
двоичный .bin
-файл с тем же базовым именем
генерируется и хранится в dir_name
.
Он содержит бинарный код ВСЕХ функций, определённых в
.sci
-файле исходного кода.
.sci
-файла,
то эта функция записывается в lib
-файл.
.sci
-файла не записывается: всё
её содержимое рассматривается как мёртвый код.![]() | Если файл test.sci определяет функцию
test() И другие функции, такие как
sub(), то функции sub() тогда рассматриваются как приватные для test(). Например,
|
.bin
-файл не будет
генерироваться: всё содержимое .sci
-файла
рассматривается как мёртвый код.lib
-файле, то это содержимое
сохраняется.Наконец, genlib(..)
загружает созданную или обновлённую
библиотеку и устанавливает её идентификатор в переменную, названную
lib_name
, в текущей области просмотра. Если переменная
lib_name
уже существует и защищена,то возникает ошибка:
библиотека была создана, но не может быть загружена
(predef all может использоваться для снятия
защиты с переменной, названной lib_name
перед запуском
genlib(..)
).
Если используется опция force=%t
, то все
.sci
-файлы компилируются, даже если их содержимое не
было изменено.
Когда из директории библиотеки некоторые старые .sci-файлы были удалены
и при этом оставшиеся .sci-файлы остались неизменными, то пересборка
библиотеки без force=%t
в любом случае обновит
список членов библиотеки.
Если включена опция verbose
, то во время сборки
отображается больше информации.
Version | Description |
6.0.0 |
|