【发布时间】:2013-02-14 21:53:32
【问题描述】:
我正在尝试编译一个需要 GTK 头文件的简单 ANSI C 程序。
我知道在使用 GCC 编译时如何将源代码与 gtk.h 链接。
我的问题是,考虑到 GTK 头文件丢失,我的系统上如何运行诸如 gedit (GTK lib) 之类的应用程序?据推测,Gedit 是在具有 GTK 库的系统上编译的。但是为什么 Gedit 在执行过程中不需要我系统上的头文件呢?
作为编译程序的 Java 程序员,类文件总是必须与主可执行文件一起打包。我还需要在目标系统上安装 JVM。
感谢您的有用回复。
【问题讨论】:
-
头文件是(部分)源代码。 JVM 世界之外的
class文件的等价物是共享库和可执行文件。 -
请注意,您不是针对头文件链接;你是包括它。链接是对象文件发生的事情以解决丢失的符号。
-
事实上,您甚至不需要头文件来编译应用程序——您可以编写自己的声明,只要它们与您链接的定义相匹配。
-
不需要反对,这是一个不错的问题。