Вопрос про директивы компилятора

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение badaninslava » 09.05.2006 22:58:40

Мне надо , чтобы при OC Win32 в uses использовался один модуль, при Linux - другой. И ещё вопрос- как определить ОС на лету? Заранее спасибо.
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение Sniper » 10.05.2006 00:17:34

а типа ifdef/ifndef отменили уже? ))
Sniper
постоялец
 
Сообщения: 472
Зарегистрирован: 28.05.2005 13:02:42

Сообщение Alexander » 10.05.2006 00:18:02

С помощью {$IFDEF LINUX} {$IFDEF UNIX} {$IFDEF WINDOWS} ... {$ENDIF}

А уж что между ними вставлять дело вкуса. Uses или const os = 1(2,3...) ........
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение SovNarKom » 10.05.2006 01:48:37

badaninslava
Кстати, вариант - это положить юниты с одинаковыми именами в разные папки, а пути выставлять в зависимости от системы... можно прямо в fpc.cfg
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение badaninslava » 10.05.2006 19:16:47

{$IFDEF LINUX} MainForm.Caption:='LINUX'; {$ENDIF}
{$IFDEF WINDOWS} MainForm.Caption:='WINDOWS';{$ENDIF}
Не работает... Почему?
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение badaninslava » 10.05.2006 19:22:40

{$IFDEF WINDOWS} MainForm.Caption:='WINDOWS';{$ENDIF WINDOWS}
{$IFDEF LINUX} MainForm.Caption:='LINUX'; {$ENDIF LINUX}
Тоже не помогает...
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение badaninslava » 10.05.2006 20:15:11

badaninslava
Кстати, вариант - это положить юниты с одинаковыми именами в разные папки, а пути выставлять в зависимости от системы... можно прямо в fpc.cfg


И ещё- можно ли в модуле использовать другой, модуль, расположенный в другой директории? Если да, то как ?

{Я имею ввиду если не править fpc.cfg}
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение badaninslava » 10.05.2006 20:43:38

О, а
Код: Выделить всё
{$IFDEF LINUX} MainForm.Caption:='LINUX'; {$ENDIF}
{$IFDEF MsWindows} MainForm.Caption:='WINDOWS';{$ENDIF}

сработало!!!

Ну так можно ли в модуле использовать другой, модуль, расположенный в другой директории? Если да, то как ?

Если не править fpc.cfg.
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение STAKANOV » 10.05.2006 23:50:41

Ну так можно ли в модуле использовать другой, модуль, расположенный в другой директории? Если да, то как ?

указать его в разделе uses модуля

Если не править fpc.cfg.

если компиляция из командной строки и путь к модулю не указан в fpc.cfg, то надо добавить ключ -Fuкаталог_модуля

если в Lazarus, то где-то в меню можно пути добавить
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение badaninslava » 11.05.2006 19:55:43

указать его в разделе uses модуля

А в каком формате? У меня всё не получается... :(
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение STAKANOV » 11.05.2006 20:10:10

badaninslava писал(а):
указать его в разделе uses модуля

А в каком формате? У меня всё не получается... :(

А? :blink:
Код: Выделить всё
uses имя_модуля,...;
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение badaninslava » 12.05.2006 13:09:11

uses имя_модуля,...;

Например модуль a.pas находится в поддиректории ..B\ текущего проекта.
Как мне к нему обратиться из прочего модуля? {Не из проектного файла.}
badaninslava
постоялец
 
Сообщения: 101
Зарегистрирован: 12.12.2005 01:21:44

Сообщение STAKANOV » 12.05.2006 13:28:26

badaninslava писал(а):
uses имя_модуля,...;

Например модуль a.pas находится в поддиректории ..B\ текущего проекта.
Как мне к нему обратиться из прочего модуля? {Не из проектного файла.}

В раздел uses прочего модуля добавить a. Каталог ..B\ добавить одним из перечисленных выше способов.
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Alexander » 12.05.2006 13:33:52

Код: Выделить всё
uses str in './s/str.pas';
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

Рейтинг@Mail.ru