Skip to content

Installasi FPC

Download package

Free Pascal Compiler(FPC) dapat didownload dengan bebas pada situs https://www.freepascal.org terdapat beberapa package binary klo males compile sendiri baik untuk windows, linux, dan mac.

Untuk mendownload versi stable gunakan alamat ini

Untuk versi devel gunakan alamat ini

Saya sarankan untuk menggunakan versi stable jika tidak ada keperluan khusus, untuk menghindari permasalahan yang tidak perlu terjadi hehe.

Install

Sama dengan dokument sebelumnya bagian install di pisah per OS.

Linux

Pada Artix linux FPC sudah tersedia di repo jadi tinggal install menggunakan pacman atau yay.

$ pacman -S fpc

Windows

Download package yang sesuai baik OS dan Arch nya, misal untuk windows 7 keatas dan cpu menggunakan AMD64 (intel atau amd yang bertulisan x64) ada pada alamat dibawah initial

Pilih mirror nya dan download file nya. Untuk install masih sama tinggal next, next, next, yes, next, Finish. hehehe.

Test

Untuk memastikan FPC sudah terinstall dengan benar buka terminal dan ketik fpc

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
$ fpc
Free Pascal Compiler version 3.2.0 [2020/10/05] for x86_64
Copyright (c) 1993-2020 by Florian Klaempfl and others
/usr/bin/fpc [options] <inputfile> [options]
 Only options valid for the default or selected platform are listed.
 Put + after a boolean switch option to enable it, - to disable it.
  @<x>   Read compiler options from <x> in addition to the default fpc.cfg
  -a     The compiler does not delete the generated assembler file
      -a5        Don't generate Big Obj COFF files for GNU Binutils older than 2.25 (Windows, NativeNT)
      -al        List sourcecode lines in assembler file
      -an        List node info in assembler file (-dEXTDEBUG compiler)
      -ao        Add an extra option to external assembler call (ignored for internal)
      -ap        Use pipes instead of creating temporary assembler files
      -ar        List register allocation/release info in assembler file
      -at        List temp allocation/release info in assembler file
  -A<x>  Output format:
      -Adefault  Use default assembler
      -Aas       Assemble using GNU AS
      -Agas      Assemble using GNU GAS
      -Agas-darwin Assemble darwin Mach-O64 using GNU GAS
*** press enter ***
      -Amasm     Win64 object file using ml64 (Microsoft)
      -Apecoff   PE-COFF (Win64) using internal writer
      -Aelf      ELF (Linux-64bit) using internal writer
      -Ayasm     Assemble using Yasm (experimental)
      -Anasm     Assemble using Nasm (experimental)
      -Anasmwin64 Assemble Win64 object file using Nasm (experimental)
      -Anasmelf  Assemble Linux-64bit object file using Nasm (experimental)
      -Anasmdarwin Assemble darwin macho64 object file using Nasm (experimental)
  -b     Generate browser info
      -bl        Generate local symbol info
  -B     Build all modules
  -C<x>  Code generation options:
      -C3        Turn on ieee error checking for constants
      -Ca<x>     Select ABI; see fpc -i or fpc -ia for possible values
      -Cb        Generate code for a big-endian variant of the target architecture
      -Cc<x>     Set default calling convention to <x>
      -CD        Create also dynamic library (not supported)
      -Ce        Compilation with emulated floating point opcodes
      -Cf<x>     Select fpu instruction set to use; see fpc -i or fpc -if for possible values
*** press enter ***
      -CF<x>     Minimal floating point constant precision (default, 32, 64)
      -Cg        Generate PIC code
      -Ch<n>[,m] <n> bytes min heap size (between 1023 and 67107840) and optionally [m] max heap size
      -Ci        IO-checking
      -Cn        Omit linking stage
      -Co        Check overflow of integer operations
      -CO        Check for possible overflow of integer operations
      -Cp<x>     Select instruction set; see fpc -i or fpc -ic for possible values
      -CP<x>=<y>  packing settings
         -CPPACKSET=<y>  <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 and 8
         -CPPACKENUM=<y>  <y> enum packing: 0, 1, 2 and 4 or DEFAULT or NORMAL
         -CPPACKRECORD=<y>  <y> record packing: 0 or DEFAULT or NORMAL, 1, 2, 4, 8, 16 and 32
      -Cr        Range checking
      -CR        Verify object method call validity
      -Cs<n>     Set stack checking size to <n>
      -Ct        Stack checking (for testing only, see manual)
      -CT<x>     Target-specific code generation options
*** press enter ***
         -CTcld                      Emit a CLD instruction before using the x86 string instructions
      -CX        Create also smartlinked library
  -d<x>  Defines the symbol <x>
  -D     Generate a DEF file
      -Dd<x>     Set description to <x>
      -Dv<x>     Set DLL version to <x>
  -e<x>  Set path to executable
  -E     Same as -Cn
  -fPIC  Same as -Cg
  -F<x>  Set file names and paths:
      -Fa<x>[,y] (for a program) load units <x> and [y] before uses is parsed
      -Fc<x>     Set input codepage to <x>
      -FC<x>     Set RC compiler binary name to <x>
      -Fd        Disable the compiler's internal directory cache
      -FD<x>     Set the directory where to search for compiler utilities
      -Fe<x>     Redirect error output to <x>
      -Ff<x>     Add <x> to framework path (Darwin only)
      -FE<x>     Set exe/unit output path to <x>
      -Fi<x>     Add <x> to include path
      -Fl<x>     Add <x> to library path
      -FL<x>     Use <x> as dynamic linker
*** press enter ***
      -Fm<x>     Load unicode conversion table from <x>.txt in the compiler dir
      -FM<x>     Set the directory where to search for unicode binary files
      -FN<x>     Add <x> to list of default unit scopes (namespaces)
      -Fo<x>     Add <x> to object path
      -Fr<x>     Load error message file <x>
      -FR<x>     Set resource (.res) linker to <x>
      -Fu<x>     Add <x> to unit path
      -FU<x>     Set unit output path to <x>, overrides -FE
      -FW<x>     Store generated whole-program optimization feedback in <x>
      -Fw<x>     Load previously stored whole-program optimization feedback from <x>
  -g     Generate debug information (default format for target)
      -gc        Generate checks for pointers (experimental, only available on some targets, might generate false positive)
      -gh        Use heaptrace unit (for memory leak/corruption debugging)
      -gl        Use line info unit (show more info with backtraces)
      -gm        Generate Microsoft CodeView debug information (experimental)
      -go<x>     Set debug information options
         -godwarfsets  Enable DWARF 'set' type debug information (breaks gdb < 6.5)
         -gostabsabsincludes  Store absolute/full include file paths in Stabs
*** press enter ***
         -godwarfmethodclassprefix  Prefix method names in DWARF with class name
         -godwarfcpp  Simulate C++ debug information in DWARF
         -godwarfomflinnum  Generate line number information in OMF LINNUM records in MS LINK format in addition to the DWARF debug information (Open Watcom Debugger/Linker compatibility)
      -gp        Preserve case in stabs symbol names
      -gs        Generate Stabs debug information
      -gt        Trash local variables (to detect uninitialized uses; multiple 't' changes the trashing value)
      -gv        Generates programs traceable with Valgrind
      -gw        Generate DWARFv2 debug information (same as -gw2)
      -gw2       Generate DWARFv2 debug information
      -gw3       Generate DWARFv3 debug information
      -gw4       Generate DWARFv4 debug information (experimental)
  -i     Information
      -iD        Return compiler date
      -iSO       Return compiler OS
      -iSP       Return compiler host processor
      -iTO       Return target OS
      -iTP       Return target processor
      -iV        Return short compiler version
*** press enter ***
      -iW        Return full compiler version
      -ia        Return list of supported ABI targets
      -ic        Return list of supported CPU instruction sets
      -if        Return list of supported FPU instruction sets
      -ii        Return list of supported inline assembler modes
      -io        Return list of supported optimizations
      -ir        Return list of recognized compiler and RTL features
      -it        Return list of supported targets
      -iu        Return list of supported microcontroller types
      -iw        Return list of supported whole program optimizations
  -I<x>  Add <x> to include path
  -k<x>  Pass <x> to the linker
  -l     Write logo
  -M<x>  Set language mode to <x>
      -Mfpc      Free Pascal dialect (default)
      -Mobjfpc   FPC mode with Object Pascal support
      -Mdelphi   Delphi 7 compatibility mode
      -Mtp       TP/BP 7.0 compatibility mode
      -Mmacpas   Macintosh Pascal dialects compatibility mode
      -Miso      ISO 7185 mode
      -Mextendedpascal ISO 10206 mode
      -Mdelphiunicode Delphi 2009 and later compatibility mode
*** press enter ***
  -n     Do not read the default config files
  -o<x>  Change the name of the executable produced to <x>
  -O<x>  Optimizations:
      -O-        Disable optimizations
      -O1        Level 1 optimizations (quick and debugger friendly)
      -O2        Level 2 optimizations (-O1 + quick optimizations)
      -O3        Level 3 optimizations (-O2 + slow optimizations)
      -O4        Level 4 optimizations (-O3 + optimizations which might have unexpected side effects)
      -Oa<x>=<y> Set alignment
      -Oo[NO]<x> Enable or disable optimizations; see fpc -i or fpc -io for possible values
      -Op<x>     Set target cpu for optimizing; see fpc -i or fpc -ic for possible values
      -OW<x>     Generate whole-program optimization feedback for optimization <x>; see fpc -i or fpc -iw for possible values
      -Ow<x>     Perform whole-program optimization <x>; see fpc -i or fpc -iw for possible values
      -Os        Optimize for size rather than speed
  -pg    Generate profile code for gprof (defines FPC_PROFILE)
  -P<x>  Target CPU / compiler related options:
      -PB        Show default compiler binary
*** press enter ***
      -PP        Show default target cpu
      -P<x>      Set target CPU (aarch64,arm,avr,i386,i8086,jvm,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64)
  -R<x>  Assembler reading style:
      -Rdefault  Use default assembler for target
      -Ratt      Read AT&T style assembler
      -Rintel    Read Intel style assembler
  -S<x>  Syntax options:
      -S2        Same as -Mobjfpc
      -Sc        Support operators like C (*=,+=,/= and -=)
      -Sa        Turn on assertions
      -Sd        Same as -Mdelphi
      -Se<x>     Error options. <x> is a combination of the following:
         <n> : Compiler halts after the <n> errors (default is 1)
         w : Compiler also halts after warnings
         n : Compiler also halts after notes
         h : Compiler also halts after hints
      -Sf        Enable certain features in compiler and RTL; see fpc -i or fpc -ir for possible values)
      -Sg        Enable LABEL and GOTO (default in -Mtp and -Mdelphi)
      -Sh        Use reference counted strings (ansistring by default) instead of shortstrings
*** press enter ***
      -Si        Turn on inlining of procedures/functions declared as "inline"
      -Sj        Allows typed constants to be writeable (default in all modes)
      -Sk        Load fpcylix unit
      -SI<x>     Set interface style to <x>
         -SIcom     COM compatible interface (default)
         -SIcorba   CORBA compatible interface
      -Sm        Support macros like C (global)
      -So        Same as -Mtp
      -Sr        Transparent file names in ISO mode
      -Ss        Constructor name must be init (destructor must be done)
      -Sv        Support vector processing (use CPU vector extensions if available)
      -Sx        Enable exception keywords (default in Delphi/ObjFPC modes)
      -Sy        @<pointer> returns a typed pointer, same as $T+
  -s     Do not call assembler and linker
      -sh        Generate script to link on host
      -st        Generate script to link on target
      -sr        Skip register allocation phase (use with -alr)
  -T<x>  Target operating system:
      -Taros     AROS
      -Tdarwin   Darwin/Mac OS X
      -Tdragonfly DragonFly BSD
*** press enter ***
      -Tembedded Embedded
      -Tfreebsd  FreeBSD
      -Tiphonesim iPhoneSimulator
      -Tlinux    Linux
      -Tnetbsd   NetBSD
      -Topenbsd  OpenBSD
      -Tsolaris  Solaris
      -Twin64    Win64 (64 bit Windows systems)
  -u<x>  Undefines the symbol <x>
  -U     Unit options:
      -Un        Do not check where the unit name matches the file name
      -Ur        Generate release unit files (never automatically recompiled)
      -Us        Compile a system unit
  -v<x>  Be verbose. <x> is a combination of the following letters:
      e : Show errors (default)       0 : Show nothing (except errors)
      w : Show warnings               u : Show unit info
      n : Show notes                  t : Show tried/used files
      h : Show hints                  c : Show conditionals
      i : Show general info           d : Show debug info
      l : Show linenumbers            r : Rhide/GCC compatibility mode
      s : Show time stamps            q : Show message numbers
      a : Show everything             x : Show info about invoked tools
*** press enter ***
      b : Write file names messages   p : Write tree.log with parse tree
          with full path              v : Write fpcdebug.txt with
      z : Write output to stderr          lots of debugging info
      m<x>,<y> : Do not show messages numbered <x> and <y>
  -V<x>  Append '-<x>' to the used compiler binary name (e.g. for version)
  -W<x>  Target-specific options (targets)
      -WA        Specify native type application (Windows)
      -Wb        Create a bundle instead of a library (Darwin)
      -WB        Create a relocatable image (Windows)
      -WB<x>     Set image base to <x> (Windows)
      -WC        Specify console type application (Windows)
      -WD        Use DEFFILE to export functions of DLL or EXE (Windows)
      -We        Use external resources (Darwin)
      -WG        Specify graphic type application (Windows)
      -Wi        Use internal resources (Darwin)
      -WI        Turn on/off the usage of import sections (Windows)
      -WM<x>     Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwin)
      -WN        Do not generate relocation code, needed for debugging (Windows)
      -WP<x>     Minimum iOS deployment version: 8.0, 8.0.2, ... (iphonesim)
      -WR        Generate relocation code (Windows)
*** press enter ***
      -WX        Enable executable stack (Linux)
  -X     Executable options:
      -X9        Generate linkerscript for GNU Binutils ld older than version 2.19.1 (Linux)
      -Xc        Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Linux)
      -Xd        Do not search default library path (sometimes required for cross-compiling when not using -XR)
      -Xe        Use external linker
      -Xf        Substitute pthread library name for linking (BSD)
      -Xg        Create debuginfo in a separate file and add a debuglink section to executable
      -XD        Try to link units dynamically      (defines FPC_LINK_DYNAMIC)
      -Xi        Use internal linker
      -XLA       Define library substitutions for linking
      -XLO       Define order of library linking
      -XLD       Exclude default order of standard libraries
      -Xm        Generate link map
      -XM<x>     Set the name of the 'main' program routine (default is 'main')
      -Xn        Use target system native linker instead of GNU ld (Solaris, AIX)
      -Xp<x>     First search for the compiler binary in the directory <x>
*** press enter ***
      -XP<x>     Prepend the binutils names with the prefix <x>
      -Xr<x>     Set the linker's rlink-path to <x> (needed for cross compile, see the ld manual for more information) (BeOS, Linux)
      -XR<x>     Prepend <x> to all linker search paths (BeOS, Darwin, FreeBSD, Linux, Mac OS, Solaris)
      -Xs        Strip all symbols from executable
      -XS        Try to link units statically (default, defines FPC_LINK_STATIC)
      -Xt        Link with static libraries (-static is passed to linker)
      -Xv        Generate table for Virtual Entry calls
      -XV        Use VLink as external linker       (default on Amiga, MorphOS)
      -XX        Try to smartlink units             (defines FPC_LINK_SMART)

  -?     Show this help
  -h     Shows this help without waiting
Hmm panjang hehehe. but ini artinya fpc sudah siap untuk digunakan.


Last update: January 29, 2021

Comments