我最近一直在使用GtkD和D编程语言来创建本机应用程序。我已经下载了所有必要的文件并运行了所有内容,因此我现在可以编译和生成示例应用程序。
我的问题是,在某些指南中,它告诉您在正在使用的平台上编译 GtkD,但有什么意义呢?编译完成后,您最终会在Windows(GtkD.lib)上得到一个lib文件,在Linux上得到三个lib文件(以*.a结尾)。这些文件是干什么用的,如何使用它们?就像我说的,一切似乎都在工作,而无需对这些文件执行任何操作。
我猜你可以静态链接这些吗?但这有什么用呢?避免每次都编译 GtkD 源代码?我确实尝试使用 pragma('lib', 'GtkD.lib')
语句,但它似乎没有任何作用。
任何人都可以阐明这一点或解释为什么需要这些文件吗?
是的,这是为了避免每次编译 GtkD 源代码。
尝试使用pragma(lib, "GtkD");
而不是pragma('lib', 'GtkD.lib');
它对我有用。
的源文件不会编译,它们只会解析符号名称和函数签名(以及模板)
创建库是为了避免每次需要重建时都需要重新编译整个库,然后编译器只能使用 .di 文件进行导入
这源于过去编译需要很长时间的日子,现在它可以用来保持库的关闭源代码