2012-06-05 43 views
2

我最近一直在用D編程語言使用GtkD來創建本機應用程序。我已經下載了所有必要的文件,並讓所有的東西都能運行,所以我現在可以編譯和生成示例應用GtkD(D語言的Gtk +綁定)爲什麼編譯它?

我的問題是,在一些指南中,它告訴你在你使用的平臺上編譯GtkD,但是這有什麼意義?編譯完成後,您將在Windows(GtkD.lib)和Linux上的三個lib文件(以* .a結尾)中生成一個lib文件。這些文件是什麼以及它們是如何使用的?就像我所說的,一切似乎都在工作,而沒有對這些文件做任何事情。

我猜你可以靜態鏈接這些?但那是什麼?爲了避免每次都編譯GtkD源代碼?我確實嘗試過使用pragma('lib', 'GtkD.lib')聲明,但它似乎沒有做任何事情。

任何人都可以照亮這一點或解釋爲什麼需要這些文件?

回答

2

源文件,它們只用於解析符號名稱和函數簽名(和模板)

創建庫是爲了避免需要每次需要時間來重新編譯整個庫重建,然後編譯器只能使用.di文件進口

這源於古時這裏編譯花了很長時間,現在它可以用來保持庫這個編譯工作在閉源

+0

在Linux上連接'libgtkd.a'最簡單的方法是什麼? –

+0

我在Windows上發現了這個問題,爲什麼被鏈接的靜態庫沒有效果,那是因爲在編譯過程中沒有生成'* .di'文件。我檢查了構建文件,它需要'-H'編譯器命令添加。一旦我做到了這一點,並重新編譯它一切運作良好。我仍然沒有正確地連接GtkD庫,但是我可能會打開另一個問題,爲什麼不。 –

3

是的,這是爲了避免每次都編譯GtkD源代碼。

嘗試使用pragma(lib, "GtkD");而非pragma('lib', 'GtkD.lib');

這對我的作品。這是進口的未編譯

+0

是否Linux呢? –