Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ {$includepath} {$unitpath}

Автор: virt 20.04.2006 20:06


//
// AggPas 2.3 RM1 Demo application
// Note: Press F1 key on run to see more info about this demo
//

{$UNITPATH d:/work/coding/game/temp/aggpas/AggPas23-rm1/src;
d:/work/coding/game/temp/aggpas/AggPas23-rm1/src/platform/win;
d:/work/coding/game/temp/aggpas/AggPas23-rm1/src/ctrl;
d:/work/coding/game/temp/aggpas/AggPas23-rm1/src/util}
{$INCLUDEPATH d:/work/coding/game/temp/aggpas/AggPas23-rm1/src}
{$MODE DELPHI}
program aa_demo ;

uses
agg_basics ,
agg_platform_support ,
agg_math ,

agg_color ,
agg_pixfmt ,
agg_pixfmt_rgb ,

agg_ctrl ,
agg_slider_ctrl ,
agg_cbox_ctrl ,

agg_renderer_base ,
.........................

{$I agg_mode.inc }



все модули в исходах ,раскиданы по папкам из unitpath ,не компилируется не может найти эти модули. Если {$INCLUDEPATH} И {$UNITPATH} закомментировать а пути добавить в options/directories/units(include) то все нормально компилится.
{$INCLUDEPATH d:/work}
{$UNITPATH d:/work}
program te;
uses test1;
{$I test.inc}

begin

end.


test1.pas::
unit tt;

interface

const n = 2;

inplementation

end.


test.inc ::
const m = 1;
test.inc находит ,а test1.pas нет.
У кого стоит 2.0.0 ,2.0.2 и 2.0.3 посмотрите пожалуйста.

И еще можно ли с помощью {$INCLUDEPATH} или подобного в основном файле заставить компилер искать инклуды для всех подключенных модулей в тех путях?

Автор: volvo 20.04.2006 20:59

virt, а и не должен компилятор находить test1.pas...

У тебя в нем ошибки, он не компилируется, следовательно, PPU не находится. Исправь его вот так:

unit test1; // <--- Вместо TT

interface

const n = 2;

implementation // <--- Вместо iNplementation

end.
тогда FPC 2.0.0 находит и unit и include...

Автор: virt 20.04.2006 22:37

d:\work\coding\game\temp\aggpas\AggPas23-rm1\te.pas::

 {$INCLUDEPATH d:\work}
{$UNITPATH d:\work}
program test;
uses test1;
{$I test.inc}

begin

end.


d:\work\test1.pas::
 unit test1;

interface

const n = 2;

implementation

end.


d:\work\test.inc::
 const m = 1;



Вот все файлы ,fpc2.0.2 тоже не может найти test1.

Автор: volvo 20.04.2006 23:01

Так... Ясно. У меня компилировалось только потому, что копия файла test1.pas была в текущем каталоге... Как только ее удалил - скомпилировать удалось ТОЛЬКО тогда, когда определил пути относительно:

{$INCLUDEPATH ../../../Buffer/T} { <- аналогично F:/Buffer/T}
{$OBJECTPATH ../../../Buffer/T}
{$UNITPATH ../../../Buffer/T}
program te;
uses test1;

{$I test.inc}
begin

end.