Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];

Вниз

Компиляция в *.dcu   Найти похожие ветки 

 
Top Gun   (2003-04-07 19:41) [0]

У меня набралось порядочно функций и процедур, которые я использую во многих своих проектах.
Я вынес их в отдельный модуль - util.pas.

Как подключать модуль ? Если писать просто в uses имя модуля "util" - то он, естесственно, не находит util.dcu
Если добавлять в проект (Project->Add to project), то пишется строка вида Util in "Util.pas";
При этом при компиляции проекта как понимаю компилируется и модуль util.pas (кстати, он каждый раз компилируется или только однажды?). Все вроде ок.

Но логика такова, что в самом util используются функции, которые обычным приложениям не нужны. Соответственно, есть другой модуль, что-то типа UtilForUtil.pas который используется ТОЛЬКО самим Util. Вот тут и проблемы с подключением модуля. Сам UtilForUtil по идее нужно подключать только в Util. Но как его подключишь, если он не скомпилирован ? Util компилируется вместе с приложением. А UtilForUtil как бы должен компилироваться вместе с Util. Но компилятор выдает ошибку, что не найден UtilForUtil.dcu. Приходится к какому-нибудь (по фигу какому) приложению подключать UtilForUtil и скомпилировать его, чтобы сам UtilForUtil скомпилировался в dcu. А уж потом этот dcu использовать.

Так вот. Что я хотел сказать, уж извините за сбивчивый рассказ. Если я просто хочу скомпилировать модуль pas в dcu, неужели для этого надо обязательно его прикреплять к фиктивному приложению, чтобы при компиляции этого приложения скомпилировался и сам модуль в dcu ?
Если открыть просто модуль, то естесственно никакие Build и Run недоступны.


 
malkolinge(fp)   (2003-04-07 20:24) [1]


> Я вынес их в отдельный модуль - util.pas.

Правильно сделал


> При этом при компиляции проекта как понимаю компилируется
> и модуль util.pas (кстати, он каждый раз компилируется или
> только однажды?). Все вроде ок.

Однажды и перекомпилируеться в случае изменения автоматически
Дальше читать не могу...Проще тебе лдружище DLL сделать.

А если хочешь совет - пиши просто uses Utils и все..Делфя за тебя даже функции ненужные из исполняемого файла выкинет


 
Top Gun   (2003-04-07 22:03) [2]

Объясните дальше. Этот вопрос меня мучает. Неужели борландовцы не предусмотрели просто компиляцию юнита в dcu ? И надо таким геморройным способом делать ?


 
Иван Шихалев   (2003-04-07 22:11) [3]

Борландовцы все предусмотрели, а потом зачем-то убрали из IDE. Можешь скомпилировать модуль из командной строки с помощью dcc32.exe


 
Palladin   (2003-04-07 23:06) [4]

ну а в пути поиска добавить конечно путь к util.pas религия не позволяет?


 
Top Gun   (2003-04-08 15:51) [5]

Иван Шихалев, а в какой Дельфе это было в IDE ?


 
Иван Шихалев   (2003-04-08 16:17) [6]

В Delphi, насколько я помню, и не было, а вот в Borland Pascal можно было спокойно компилировать модуль сам по себе из IDE.


 
MityaP   (2003-04-08 16:32) [7]

по моему ты дурью маешься...
Если ты вносишь изменения и Util и в UtilForUtil, то полюбому надо оба компилить.. И если в проекте надо действительно изменять и тот и другой - то полюбому надо оба к проекту цеплять...
А если util не изменяется, а UtilForUtil изменятся, достаточно util.dcu под боком иметь, второй добавлять...
И вообще, если функции из util не изменяешь, то дейтв, как говорит malkolinge(fp), сделай из него dll...


 
Top Gun   (2003-04-08 18:41) [8]

>А если хочешь совет - пиши просто uses Utils и все

Я же кажется писал - тогда компилятор сообщает, что не найден util.dcu (или соответственно UtilForUtil.dcu)

>ну а в пути поиска добавить конечно путь к util.pas религия не позволяет?

А это здесь при чем ? Ведь dcu не найден, а не pas

Ну собственно Иван Шихалев все разъяснил.
*********************************************************

Возник другой вопрос. А можно в Дельфе сделать неявное подключение модуля ?

Ну то есть, приложение подключает Unit1. В самом Unit1 подключается Unit2. Так вот можно просто в приложении подключать Unit1 и использовать функции из Unit2? Ведь подключенный Unit1 использует Unit2, все равно от скомпилируется в exe.
Просто возможна достаточно сложная иерархия модулей, и чтобы не подключать все это каждый раз в приложение можно просто подключать какой-нибудь MainUnit, в котором уже подключено все остальное.


 
MityaP   (2003-04-08 18:59) [9]

Если не найден какой-то модуль, он всегда пишет что ненайдет [имя модуля].dcu //!!!\\ А на pas - да плевать Дельфи хотел, что pas... он все-равно пишет dcu...
Он шарит сначала util.pas, если такой не найден - ищет util.dcu => не найден всё-таки util.dcu.... (последний файл в списке поиска)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
9-67063
STANT
2002-11-09 18:38
2003.04.21
Алогоритм приведения пятнашек в исходное состояние


14-67436
anton2v
2003-04-02 14:04
2003.04.21
Старые вопросы в формах


1-67373
CussedJohn
2003-04-10 11:24
2003.04.21
Чтение Нового Формата Файла 16-бит. INTEGER


1-67221
Rradion
2003-04-10 13:53
2003.04.21
Помогите плиз с Множествами...


1-67277
Алексей Глеб
2003-04-11 11:10
2003.04.21
DLL & TFrame





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский