logo
TurboProlog / Документация / TOM_2

Опции компилятора Турбо Си и компоновка.

Для того, чтобы связать модули на Турбо Си с модулями на Турбо Про-

логе, вы должны компилировать ваш код со следующими опциями:

# Компилирование при помощи TC.EXE

1. Options/Compiler/Model/Large

2. Options/Compiler/Optimization/Jump Optimization...On

3. Options/Compiler/Code generation/Generate underbars...

Off.

(или вы должны вызывать Си-процедуры начинающимися со знака

подчеркивания).

# Компилирование при помощи TCC.EXE

-ml -O -u- -Z -c

Турбо Пролог и Турбо Си компонуются при помощи следующей командной

строки:

tlink init <pOBJS> <cOBJS> <.sym>, [exe], [map], [usr]

+ prolog[+emu+mathe+cl]

Это единственная родовая командная строка, в которой аргументы озна-

чают следующее:

Аргумент Что он делает

-----------------------------------------------------------------

tlink Включает TLINK, Турбо компоновщик Borland

init Файл инициализации Турбо Пролога

pOBJS Ссылка на ваши .OBJ-модули Турбо Пролога

cOBJS Ссылка на ваши модули Турбо Си

.sym Символьный файл Турбо Пролога; должен быть последним

файлом перед запятой

exe (необязательное) имя выполняемого файла

map (необязательное) имя map-файла

usr Ссылка на (необязательный) список файлов

пользовательской библиотеки

prolog Ссылка на PROLOG.LIB

emu Ссылка на (необязательную) Си-библиотеку эмуляции с

плавающей точкой, EMU.LIB

mathe Ссылка на (необязательную) Си-библиотеку математики,

MATHL.LIB

cl Ссылка на (необязательную) Си-библиотеку CL.LIB

-----------------------------------------------------------------

Задав родовую командную строку и предполагая, что PDOUB.PRO скомпи-

лирует в .OBJ, вы можете задать следующие командные строки для связывания

PDOUB.PRO и CDOUB.C:

tcc -ml -O -u- -r- -c cdoub /*Компилирует CDOUB.C в OBJ*/

tlink init pdoub cdoub pdoub .sym, pdoub, ,prolog

Альтернативой использованию TLINK служит создание файла определения

проекта CPROJ.PRJ с именами двух модулей в проекте:

pdoub

cdoub.obj

Замечание: Задание расширения для объектного файла Си заставляет

компилятор Турбо Пролога его игнорировать. Если вы не

зададите расширение файлу Си, компилятор Турбо Пролога

выдаст сообщение об ошибке. Однако, это не помешает

системе связать файлы успешно. После создания файла

определения проекта, все, что от вас требуется, это

объявить модуль Турбо Пролога как часть проекта. Если

Си-модуль уже был скомпилирован в CDOUB.OBJ, то вам

достаточно выбрать Compile/EXE File (после загрузки

программы PDOUB.PRO в текстовый редактор Турбо

Пролога) и система Турбо Пролог автоматически

скомпонует все связи. Если вам нужны внешние

библиотеки, вы можете указать их в меню O/L/Libraries

project "cproj"

global predicates

double(integer, integer) - (i, o) language c

goal

double(5, N),

write("Удвоенное 5 равно", N).