Search code examples
adagnatelaboration

Avoid warning about static vs dynamic elaboration checks with GNATCOLL on macOS


I am trying to use GNATCOLL (on macOS) by adding

with "gnatcoll"

to my .gpr file, but I am getting this warning:

warning: "main.adb" has dynamic elaboration checks and with's
warning:   "gnatcoll-traces.ads" which has static elaboration checks

I compiled GNATCOLL, and then recompiled it with the configure option --enable-shared. Judging from the files, the shared library version is installed.

How can I direct gnatmake to use the shared library version of GNATCOLL? Or alternatively, how can I build my program statically, so at least it's compatible?


Solution

  • The message is not about linking, but about elaboration checks.

    According to the help for gnatmake, you enable dynamic elaboration checking mode with the flag -gnatE. This indicates that you might solve your problem by removing the -gnatE flag from your build command.