用Lazarus编写的FreePascal GUI应用程序的依赖性是什么?

我知道用于Linux的FreePascal应用程序是静态链接的。 我想有一些低级的API需要。 这仅仅是GUI应用程序的GTK吗? 我假设一个命令行应用程序不会有相同的依赖关系。

我在哪里可以find一种方法来确定哪些LCL类需要哪些基础API?

编辑:维塔利想知道我的答案是什么。

用一个小的控制台应用程序:ldd确认这是一个静态链接的可执行文件。
strace更有趣。 仅用于控制台的应用程序未显示打开的文件。 我想这是完全自足的。

通过一个简单的GUI应用程序,ldd显示了一些dynamic链接,strace的输出显示了许多 “open”。

在我对此感到满意之前,还需要多一点研究。

由于它们是静态链接的,它们究竟有什么样的依赖关系?

不过,你可以试着用几种方法解决它…

  1. ldd <executable> (只是为了确保你的二进制文件不是动态链接的)
  2. strace <executable> > log.file 2&>1 && cat log.file | grep open

我在哪里可以找到一种方法来确定哪些LCL类需要哪些基础API?

从我的角度来看,这个目的需要一些努力。 我建议尝试一个systemtap 。