Question

I know that FreePascal apps for Linux are statically linked. I imagine that there are some low-level APIs required. Is this just GTK for GUI applications? I assume a command-line app wouldn't have the same dependencies.

Where can I find a way to determine which LCL classes require which underlying APIs?

Edit: Vitaly wanted to know what I found with his answer.

With a small console app: ldd confirmed that it was a statically linked executable.
strace was more interesting. A console-only application showed no open files. I guess it's totally self contained.

With a simple GUI application, ldd showed some dynamic linking, and strace's output showed many "open"s.

It'll still take a little more research before I'm comfortable with this.

Was it helpful?

Solution

Since they are statically linked, exactly what kind of dependencies could they have?..

However you can try to work it out with a several methods...

  1. ldd <executable> (just to be sure that your binary is not dynamically linked)
  2. strace <executable> > log.file 2&>1 && cat log.file | grep open

Where can I find a way to determine which LCL classes require which underlying APIs?

From my point of view, this purpose requires some hard work. I'd advice to try systemtap for the one.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top