Sign in Join
Wiki copytemporary

Mac Installation FAQ: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11*(macOS only)*
22
33This page lists solutions to the most frequent problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS. Please read [[Installing Lazarus on macOS]] first and pay special attention to the sections that apply to your versions of macOS, Xcode, Lazarus and Free Pascal.
44
55## Lazarus doesn't run project
66
77*After moving to macOS or after upgrading to a new version of macOS Lazarus is unable to compile and run a project.*
88
99**Solution:** Most likely, this behaviour results from missing command line tools. In newer versions of Xcode they are no longer installed by default. You can install them by running
1010
1111` xcode-select --install`
1212
1313from the terminal. See also [[Installing Lazarus on macOS]] for more details.
1414
1515## Compilation aborts with weird messages
1616
1717*I have correctly installed Lazarus and FPC, but compiling a simple demo program stops with the Free Pascal exit code 256 and the message "Lazarus Panic /bin/sh: clang: command not found".*
1818
1919**Solution:** This behaviour may arise from a too old Xcode version installed. Generally, you should use the newest Xcode version that is available for your operating system. Lazarus 1.6 requires, e.g., Xcode 3.2.6, or newer. With Xcode 4.3 or newer, you should also install the Xcode command line tools as described above or in the article [[Installing Lazarus on macOS]].
2020
2121## ld: symbol(s) not found for architecture i386
2222
2323*I am trying to compile a blank project on Catalina immediately after installing FPC and Lazarus but I get this error "ld: symbol(s) not found for architecture i386".*
2424
2525**Solution:** Go to Lazarus \> Tools \> Options, if your compiler is set to ppc386 (32 bit), then change it to ppcx64 (64 bit) or fpc (a wrapper that should choose the correct compiler). There is no 32 bit support in Catalina. In later versions of Lazarus, the Lazarus \> Tools \> Options menu has been moved to the Lazarus \> Preferences menu
2626
2727## Debugger not found
2828
2929*I have installed the latest version of Lazarus on a new Mac. My program is built fine, but when I try to run it I get a message that the debugger `/usr/bin/gdb` doesn't exist or isn't runnable.*
3030
3131**Solution:** Since version 5, Xcode does not include the GDB debugger but the LLDB debugger. For recent versions of macOS, go to the Tools \> Options \| Debugger menu and choose "LLDB debugger (with fpDebug) (Beta)" and set the executable to `/usr/bin/lldb`. In later versions of Lazarus, the Tools \> Options menu has been moved to the Lazarus \> Preferences menu
3232
3333**Solution (legacy):** Xcode v5 no longer includes the GDB debugger. See [[GDB on OS X Mavericks or newer and Xcode 5 or newer]] for possible solutions unless you are running a recent version of macOS (in which case, see above).
3434
3535## Form not shown after moving to Mac
3636
3737*My application works well on Windows and Linux, but after changing to Mac my forms are invisible. I tried to re-scan the FPC source directory, and I clicked "Create Bundle", but this didn't solve the problem. Unlike my app, a very simple demo application works well.*
3838
3939**Solution:** This may result from a wrong position setting of your form(s). Your Windows machine may have a multi-monitor setup, so that the forms are outside the visible area of a single-monitor environment, i.e. if your Mac has only one monitor. You should check and correct the top and left properties of your forms in the object inspector. (Of course, this also applies in the other direction, i.e. if you have a multi-monitor Mac and a single-monitor Windows or Linux machine).
4040
4141## Form not responding to mouse clicks
4242
4343*After starting the program the form is visible, but not responding to interaction via the user interface.*
4444
4545**Solution:** Programs for macOS-based systems are more complex than programs for Windows or Linux. They require the existence of an [[Application Bundle|application bundle]], a special opaque directory structure, which determines the modalities of interaction with the operating system and the GUI. You may create an application bundle in the [[IDE Window: Project Options|project settings]] or alternatively via shell commands. Make sure that the option [[IDE Window: Project Options|Use Application Bundle for running and debugging (for Darwin)]] is checked.
4646
4747## fpcsrc not present
4848
4949*After installing and first running Lazarus, the welcome window complains that the directory "/usr/local/share/fpcsrc" is not found.*
5050
5151**Solution:** You have to install fpcsrc. This is a Lazarus-specific installer package that comes with your distribution of Lazarus. If you have downloaded Lazarus from SourceForge you find fpcsrc in the same server directory as the Lazarus package.
5252
5353## Multiple error messages after upgrading Lazarus and/or FPC
5454
5555*After upgrading Lazarus and/or Free Pascal to a new major version, trying to compile my code results in multiple error messages.*
5656
5757**Solution:** This behaviour may have multiple reasons. After every major upgrade you should rescan the FPC source directory. If this doesn't help it may be useful to delete the file `fpcdefines.xml` (it is within the ~/.lazarus folder). Additionally, you should check your code for incompatibilities that may result from changes in the compiler (although this is quite rare with code that is not too unusual). See [:Category:FPC User Changes by release](/wiki-category/FPC%20User%20Changes%20by%20release) for intentional changes to the compiler that may break existing code.
5858
5959## Unit XY not found
6060
6161*I have freshly installed a new version of Lazarus on my machine. Trying to compile an application results in the error message "Error: unit not found: XY".* (XY is a place holder for any unit name.)
6262
6363**Solution:** Try to re-scan your FPC source directory via the Lazarus IDE *Tools...* menu.
6464
6565== Fatal: Cannot find \[...\] used by \[...\], incompatible ppu=\[filename\], package \[package name\] ==
6666
6767*When the compiler gives the message "Cannot find A used by B", Lazarus checks what pas/pp/ppu files are in the search path, and if there is a ppu file it inserts "incompatible ppu=filename, package".*
6868
6969**Explanation:** FPC cannot use this ppu for one of these reasons:
7070
7171- it was compiled with another FPC version;
7272- it was compiled with (depends on) some other ppu files that are not in the search path;
7373- you misconfigured some search path(s).
7474
7575**Solutions:** (1) Check that you have the current [[Xcode]] (optional - see [[Installing Lazarus on macOS|here]]) and Xcode command line tools package (mandatory) installed; (2) Lazarus \> Menu \> Tools \> Configure Build Lazarus - Find and check "Clean all" and then Build. If that doesn't work, I'd be tempted to delete both FPC + Lazarus and start again. See [[Uninstalling Lazarus on macOS|Uninstalling Lazarus and Free Pascal]].
7676
7777## Error: User defined: only cpu i386 is supported
7878
7979*When compiling Lazarus on macOS I receive this error: `carbonbars.pp(16,2) Error: User defined: only cpu i386 is supported`*
8080
8181**Solution:**
8282
8383``` bash
8484make bigide LCL_PLATFORM=cocoa
8585```
8686
8787## Error: ld: framework not found Cocoa
8888
8989*When compiling Lazarus on macOS I receive this error: `Error: ld: framework not found Cocoa`*
9090
9191**Solution:** You forgot to install the Xcode command line tools or they've since been deleted. See [[Installing Lazarus on macOS|Installing Xcode Command Line Tools]] to resolve. You may also need to either:
9292
9393\(1\) re-install FPC **after** installing the Xcode command line tools; or
9494
9595\(2\) tweak the `/private/etc/fpc.cfg` file, after installing the Xcode command line tools, by adding:
9696
9797` -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib`\
9898` -XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk`
9999
100100so that the compiler can find the macOS frameworks.
101101
102102## Error ppc1 not found
103103
104104''When compiling the Free Pascal Compiler on macOS I receive this error:
105105
106106```text
107107/usr/local/bin/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu../rtl/units/x86_64-darwin -Fix86_64 -FEx86_64/bin/x86_64-darwin -FUx86_64/units/x86_64-darwin -dRELEASE -dx86_64 -dGDB -dBROWSERLOG -Fux86 -Fix86 pp.pas
108108/bin/mv -f x86_64/bin/x86_64-darwin/pp ppcx64
109109/Applications/Xcode.app/Contents/Developer/usr/bin/make echotime
110110Start now 08:06:02
111111/bin/rm -f ppc1
112112/bin/mv -f ppcx64 ppc1
113113/Applications/Xcode.app/Contents/Developer/usr/bin/make 'FPC=/Users/Developer/fpc trunk/compiler/ppc1' 'OLDFPC=' next CYCLELEVEL=2
114114Makefile:135: *** Compiler /Users/Developer/fpc trunk/compiler/ppc1 not found. Stop.
115115make[3]: *** [ppc2] Error 2
116116make[2]: *** [cycle] Error 2
117117make[1]: *** [compiler_cycle] Error 2
118118make: *** [build-stamp.x86_64-darwin] Error 2
119119```
120120
121121**Solution:** GNU Make does not handle directory names with spaces in them. Rename "fpc trunk" to "fpc_trunk" or similar and it should work without this error.
122122
123123## Error: library (X11 or Truetype) not found
124124
125125*If you are compiling X11 applications (typically using fpGui) FPC needs to know where to find the libX11.dylib and libfreetype.dylib libraries. If FPC cannot find these libraries, you will receive a library not found error during linking.*
126126
127127**Solution:** Depending on your version of macOS or XQuartz these may be found in `/usr/X11/lib` or `/opt/X11/lib` with a symlink from `/usr`. The best solution to this is probably to edit `/etc/fpc.cfg` and add the line `-Fu/usr/X11/lib`
128128
129129## Application does not accept keyboard input
130130
131131*After compiling my application, I cannot enter anything in the edit boxes and the application will not accept any keyboard input.*
132132
133133**Solution:** You forgot to create an [[Application Bundle|application bundle]]. Lazarus \> Project \> Project Options \> Application - Create Application Bundle.
134134
135135## Warning arm64 function not 4-byte aligned
136136
137137**When compiling on an Apple Silicon M1 processor, I get a "warning arm64 function not 4-byte aligned" for every function.**
138138
139139**Solution:** That's probably a consequence of using -Os. That setting unconditionally sets procalign (jump align) to 1. That's definitely wrong for AArch64 and a bunch of other architectures. There is no "minimum required alignment" for these settings defined yet anywhere in the compiler, so that will need to be added. In the meantime, do not use -Os to optimize size.
140140
141141## Resource compiler "fpcres" not found
142142
143143**When compiling an application after installing or compiling a new Lazarus version, it fails with the error "Error (9021) Resource compiler "fpcres" not found, switching to external mode**"
144144
145145**Solution:** Create a file called `.fpc.cfg` (note the leading dot in the filename) in your home directory and add the lines:
146146
147147`#include /etc/fpc.cfg`\
148148`-FD/usr/local/bin`
149149
150150If the file already exists it should contain the first of the lines above, so just add the second line.
151151
152152## ld: file not found: /usr/lib/crt1.10.5.o
153153
154154**When compiling FPC from source, linking fails with "ld: file not found: /usr/lib/crt1.10.5.o"**
155155
156156**Solution:** Add `"OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"` to your `make` command line - the reason is that when compiling the FPC source, the `fpc.cfg` file, which contains this option, is not used.
157157
158158## ld: library not found for -lc
159159
160160''When compiling FPC from source, I get this "ld: library not found for -lc, An error occurred while linking "
161161
162162**Explanation:** The compiler cannot find the operating system SDK frameworks.
163163
164164**Solutions:**
165165
166166- If you have not installed the command line tools, you need to do so. Note that when you upgrade the operating system, the command line tools are deleted during the upgrade process.
167167
168168- If you have installed the command line tools, then you need to tell the compiler where to find the SDK frameworks by adding:
169169
170170
171171`OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"`
172172
173173to your `make` command line. Note that older versions of the command line tools (eg those for Mountain Lion 10.8.5) did not also install the SDK frameworks in which case you will need to install the latest version of the full Xcode package for your operating system and, for example, adding:
174174
175175`OPT="-XR/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/"`
176176
177177to your `make` command line.
178178
179179## codesign error when compiling FPC from source
180180
181181*When compiling FPC on older versions of macOS, I receive this error:*
182182
183183` /usr/bin/codesign --remove-signature ppc3.tmp  `\
184184` ppc3.tmp: unsupported type or version of signature`\
185185` make[2]: *** [cycle] Error 1`\
186186` make[1]: *** [compiler_cycle] Error 2`\
187187` make: *** [build-stamp.x86_64-darwin] Error 2`
188188
189189**Explanation:** Older versions of the macOS `codesign` command line utility do not have a `--remove-signature` option.
190190
191191**Solution:** You can provide a custom codesign command via the CODESIGN=xxx make parameter to your make command line. You could use CODESIGN=/usr/bin/true to work around it.
192192
193193## Error: Internal error 200609171
194194
195195*When compiling my Objective-Pascal delegate function(s)/procdeure(s) the compiler stops with this error: "Error: Internal error 200609171".*
196196
197197**Explanation:** The internal error comes from using the DWARFv3 (-gw3) information format for debugging. There is a bug in the Free Pascal Compiler up to and including 3.2.2 related to generating debug information for Objective-Pascal with that format.
198198
199199**Solution:** Switch to using the DWARFv2 (-gw) debugging information format **OR** use FPC main (development version 3.3.1).
200200
201201## Lazarus reports success, but there are errors!
202202
203203*I compiled my application and although Lazarus says my application compiled successfully, there are a bunch of errors shown. For example -*
204204
205-` `<font color=green>`Compile Project, Target: project1: Success, Errors: 8`</font>` `\
205+` ``Compile Project, Target: project1: Success, Errors: 8`` `\
206206` Error: /Users/trev/prg/LAZARUS/laz_avaudioplayer/lib/x86_64-darwin/unit1.s:107840:10: warning: section "__datacoal_nt" is deprecated`\
207207` Error: .section __DATA, __datacoal_nt, coalesced`\
208208` Error: /Users/trev/prg/LAZARUS/laz_avaudioplayer/lib/x86_64-darwin/unit1.s:107840:10: note: change section name to "__data"`\
209209` Error: .section __DATA, __datacoal_nt, coalesced`\
210210` Error: /Users/trev/prg/LAZARUS/laz_avaudioplayer/lib/x86_64-darwin/unit1.s:107883:10: warning: section "__datacoal_nt" is deprecated`\
211211` Error: .section __DATA, __datacoal_nt, coalesced`\
212212` Error: /Users/trev/prg/LAZARUS/laz_avaudioplayer/lib/x86_64-darwin/unit1.s:107883:10: note: change section name to "__data"`\
213213` Error: .section __DATA, __datacoal_nt, coalesced`
214214
215215**Explanation:** These are actually harmless warnings from the assembler, but for some reason Lazarus shows them as errors. Just ignore them.
216216
217217## GUI application menu inaccessible
218218
219219*My GUI application menu is not accessible*
220220
221221**Solution:** All macOS GUI applications must be wrapped in an [[Application Bundle]].
222222
223223## Other questions
224224
225225*I didn't find my issue here.*
226226
227227**Solution:** You might find a possible solution at [the Lazarus and Free Pascal Forum](http://forum.lazarus.freepascal.org/index.php/board,15.0.html). Otherwise, you might ask your question there.
228228
229229## See also
230230
231231- [[Lazarus Faq|Lazarus FAQ]]
232232
233233---
234234*From the Free Pascal wiki, page "Mac Installation FAQ", as it stood on 2022-03-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
235235Category: FAQs
236236Category: FPC
237237Category: Install
238238Category: Lazarus
239239Category: macOS

Back to history