|
|
Советы для быстрого старта
Поставьте в окружение что-то типа
export CLIPROOT="/usr/local/clip"
В данный каталог будут проинсталлированы все необходимые файлы из
дистрибутивов. Во время компиляции и исполнения из этого
каталога, будет читатся необходимая для работы информация.
Основная программа, которая делает все (препроцессор, компилятор,
транслятор в c-файлы и po-файлы, сборщик программы) - CLIP, но
она использует gcc в качестве конечного компилятора и сборщика.
Чтобы собрать простую программу надо выполнить:
clip -e -s -M test.prg
-e - create executable file
-s - use share library
-M - genereate MAIN procedure - этот ключик надо использовать если в
теле программы явно не описана процедура MAIN.
Собирать программы можно:
- в share режиме используя ключик -s.
В этом случае исполняемый файл будет минимален, но он будет зависим
от библиотеки $CLIPROOT/lib/libclip.so.
- в static режиме, в данном случае надо явно указывать какие библиотеки
надо подключать ( clip -e test.prg $CLIPROOT/lib/other_libs.a).
При этом программа становится независимой от внешних файлов, но при этом
в ее состав войдут все объектные и библиотечные файлы и размер программы
может составлять несколько мегабайт.
Для того, чтобы компилировать любые ранее наработанные исходники из DOS,
имена файлов должны быть в нижнем регистре (используйте утилиту
lowname). Рекомендуем в ваших программах установить режим
set translate path on
для автоматической трансляции имен файлов и каталогов в нижний регистр
во время выполнения программы.
Процедура инициализации находится в prg/sys/sys_init.prg
При наличии в prg-модуле функции или процедуры с именем, равным
имени prg-файла, автоматически включается компиляция с ключиком "-n"
(модуль без стартовой процедуры), поэтому компилировать можно "по-умолчанию"
т.е. без явного указания "-n" простым вызовом "clip *.prg" или
"clip -p *.prg"
При обращении программ к данным на замонтированных файловых системах из
других ОС (Novell,Win,...) могут быть проблемы с поддержкой блокировок
и кеширующими механизмами. В частности библиотека поддержки Novell под freeBsd
не поддерживает блокировки.
|