Dlaczego kompilator odrzuca legalną dyrektywę {$H}?

0

Według dokumentacji http://www.freepascal.org/docs-html/ref/refsu12.html dyrektywa {$H} jest całkowicie legalna i powoduje, że stringi są traktowane jak ansistringi.

Dlaczego zatem mi kompilator odrzuca tę dyrektywę?

Prosty kod:

{$H}
program Cojest;

begin
end.

Wyrzuca warning:

kmph@kmph ~ $ fpc cojest.pas
Free Pascal Compiler version 2.6.2-5 [2013/07/25] for x86_64
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling cojest.pas
cojest.pas(1,2) Warning: Illegal compiler directive "$H"
Linking cojest
/usr/bin/ld.bfd: warning: link.res contains output sections; did you forget -T?
6 lines compiled, 0.2 sec 
1 warning(s) issued
 
1

Spróbuj

{$H+}
//lub 
//{$LONGSTRINGS ON}
program Cojest;
 
begin
end.
0

Wielkie dzięki!

0

@kmph - większość dyrektyw kompilatora używa się albo ze znakami +/-, albo ze słówkami ON/OFF i tak właśnie jest w przypadku dyrektywy $H; Do dyspozycji masz dwa rodzaje dyrektyw do długich łańcuchów:

// włączenie
{$H+}
{$LONGSTRINGS ON}

// wyłączenie
{$H-}
{$LONGSTRINGS OFF}

Wystarczyło zapoznać się z właściwym artykułem dokumentacji; Po drugie, przyjęło się deklarować dyrektywy wewnątrz ciała programu, modułu czy biblioteki, więc swoją powinieneś dodać pod linijką ze słowem kluczowym Program;

Na przyszłość więcej szukaj i czytaj, a tematy o podstawy programowania zakładaj w dziale Newbie, gdzie wątek przenoszę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1