Помощь - Поиск - Пользователи - Календарь
Полная версия: Компиляция модуля
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
biba
Как откомпилировать модуль, чтобы он из PAS'а превратился в TPU. Я когда подключаю модуль, то написано, что он не найден <_<
APAL
Точно так же как и обычную программу.
biba
Цитата(APAL @ 7.09.04 20:45)
Точно так же как и обычную программу.

А что обычную программу тож компилируют blink.gif
Я прочитала, что нужно что-то в директории написать, но то что они предлагают, у меня даже такого пункта в Паскале нет sad.gif angry.gif
Catty
В меню Compile есть Make попробуй с помощью него!
Бродяжник
1) Обычно, если у нас, к примеру, есть файл Proga.pas с какой-то программой, которая использует модуль Modul, и есть файл Modul.pas, который содержит лично модуль Modul, то можно просто разместить их в одной директории, загрузить в Паскале файл Proga.pas и нажать F9. При этом Паскаль должен скомпилировать файл Modul.pas в Modul.tpu, скомпилировать в памяти основную программу и собрать окончательный EXE-шник Proga.exe (если в настройках Паскаля установлено, что нужно компилировать на диск). При этом файл Modul.tpu автоматически создается либо там же, где лежит Modul.pas, либо в директории, заданной в настройках Паскаля.
2) Если мы просто хотим скомпилировать Modul.pas в Modul.tpu, то это еще проще. Загружаем его в Паскаль, жмем F9... все!
3) Если у нас есть готовый Modul.tpu, то, чтобы им воспользоваться, его нужно поместить либо туда же, где находится основная программа, либо в специальную директорию, заданную в настройках Паскаля.
4) Пресловутые настройки. Главное меню->Options->Directories. Имеются пункты:
EXE and TPU Directories - сюда будут попадать скомпилированные EXE и TPU.
Include Directories - сюда можно класть файлы, подключаемые по {$i}
Unit Directories - вот сюда можно класть "TPU частого использования"
Object Directories - сам не знаю lol.gif никогда не юзал
5) Все сказанное относится к 6-му Борландовскому Паскалю. А у Вас, кстати, какой?
APAL
Добавлю еще один вариант компиляции - консольный:

Набираете в командной строке TPC.EXE <имя вашей проги.PAS>
происходит компиляция прямо в экзешник (при условии, что в проге нет ошибок)


Цитата
А что обычную программу тож компилируют  blink.gif


Ну прям, открытие какое... :D
Любой код программы компилируется (ну может за исключением машинного кода)
Altair
Цитата
Я когда подключаю модуль, то написано, что он не найден 

Как я понял, ситуация следующая:
Вы написали модуль, и используете его в программе, и при запуске этой программы, выводится сообщение об ошибке (не найден модуль).
Если так, то откройте текст модуля (File - open), и скомпилируйте (f9)
---
А может у Вас просто нет модуля, который Вы пытаетесь использовать в программе?

---
Или может быть следующая причина: компилятор не находит путь (при компиляции проги, в которой есть модуль) к модулям, тогда жмите OPTIONS - Directories...
и выставляйте путь.
P@sh@
biba
Поменяй пункт меню "Compile/Destination: Memory" на "Destination: Disk" (это относится не только к EXE, но и к TPU). Это если у тебя Turbo Pascal.
Borland Pascal всегда компилирует на диск...
MangaManiac
У меня немного другая проблема. Нужно откомпилировать модуль, который в свою очередь использует другой модуль, который в свою очередь... И так далее. Компилируется только самый первый модуль, который ни к какому другому модулю не обращается. Остальные выдают, что модуль, который они используют не найден. Я менял директории, в которых следует искать модули, копировал тпушные файлы во все папки. И всё ревно - модуль не найден, хоть ты тресни! <_<
Кто-нибудь с подобным сталкивался?
P.S. Эта проблема у меня как в Borland Pascal, так и в Turbo Pascal.
APAL
Попробуй компилировать поочередно, с хвоста цепочки - т.е. с самого "дальнего" модуля от главной программы.
Altair
И еще не забываем правило для модулей:
Пусть А и Б модули, тогда:
Если в строке uses модуля А прописан модуль Б, то в модуле Б не может быть в строке uses модуля А!!!
Цитата
Остальные выдают, что модуль, который они используют не найден

Если выдается сообщение о том, что не найден, значит не найден!
Значит его или нет, или путь к модулю не прописан!

[offtop]
Как-то в ФМШ, мы спросили у препода, что если Пролог (интерплитатор) при запуске выдает сообщение "нет" ?
Ответ преподавателя: "Это или нет, или отстань от меня, дурак* smile.gif"
---
* - слово употребленно не в оскорбительной, а шутливой форме! :D
[offtop]
ЗЫ: то же с мессагой о том, что не найден! :D
GoodWind
Цитата
P.S. Эта проблема у меня как в Borland Pascal, так и в Turbo Pascal.

А это раэве не одно и то же ? blink.gif
Altair
Цитата
А это раэве не одно и то же ? 

Не совсем...
В БП вообще-то больше возможностей ...
Бродяжник
К вопросу о перекрестных USES:
Код

unit a;
interface
implementation
uses b;
end.
{-------------------}
unit b;
interface
implementation
uses a;
end.
{-------------------}
program c;
uses a,b;
begin
end.

...компилируется без проблем. (ТР 6.0)
Altair
Так они здесь не в интерфейсной части описанны!
Так-то конечно компилируется, нельзя прописать их взаимно в Uses интерфейса!!
Бродяжник
Эт да. smile.gif
where to buy zithromax for chlam
Mochte Viagra Ausprobieren
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.