2

我最近一直在使用带有 D 编程语言的 GtkD 来创建本地应用程序。我已经下载了所有必要的文件并让一切运行起来,所以我现在可以编译和生成示例应用程序。

我的问题是,在某些指南中,它告诉您在您使用的平台上编译 GtkD,但有什么意义呢?编译后,您最终会在 Windows 上得到一个 lib 文件 (GtkD.lib),在 Linux 上得到三个 lib 文件(以 *.a 结尾)。这些文件是做什么用的,它们是如何使用的?就像我说的,一切似乎都在工作,而无需对这些文件做任何事情。

我猜你可以静态链接这些?但那是为了什么?为了避免每次都编译 GtkD 源代码?我确实尝试过使用该pragma('lib', 'GtkD.lib')语句,但它似乎没有做任何事情。

任何人都可以对此有所了解或解释为什么需要这些文件吗?

4

2 回答 2

3

是的,这是为了避免每次都编译 GtkD 源代码。

尝试使用pragma(lib, "GtkD");而不是pragma('lib', 'GtkD.lib');

这个对我有用。

于 2012-06-05T21:54:29.837 回答
2

导入的源文件不会被编译,它们只会被解析为符号名称和函数签名(和模板)

创建库是为了避免每次需要重新编译时都需要重新编译整个库,然后编译器只能使用 .di 文件进行导入

这源于过去编译需要很长时间,现在它可以用来保持库的封闭源代码

于 2012-06-05T21:55:51.013 回答