GtkD (привязки Gtk+ для языка D) зачем его компилировать?

Недавно я использовал GtkD с языком программирования D для создания собственных приложений. Я загрузил все необходимые файлы и запустил все, так что теперь я могу компилировать и создавать примеры приложений.

Мой вопрос заключается в том, что в некоторых руководствах говорится, что вы должны скомпилировать GtkD на платформе, которую вы используете, но какой в ​​этом смысл? После компиляции вы получите один файл lib в Windows (GtkD.lib) и три файла lib в Linux (оканчивающиеся на *.a). Для чего нужны эти файлы и как они используются? Как я и сказал, кажется, что все работает, ничего не делая с этими файлами.

Я предполагаю, что вы можете статически связать это? но для чего это? Чтобы не компилировать исходники GtkD каждый раз? Я действительно попробовал это, используя pragma('lib', 'GtkD.lib') заявление, но, похоже, ничего не сделало.

Кто-нибудь может пролить свет на это или объяснить, зачем нужны эти файлы?

2 ответа

Решение

Импортируемые исходные файлы не компилируются, они анализируются только для имен символов и сигнатур функций (и шаблонов)

создание библиотек избавляет от необходимости перекомпилировать всю библиотеку каждый раз, когда вам нужно пересобрать, и тогда компилятор может использовать только файлы.di для импорта

это происходит с давних времен, когда компиляция занимала много времени, и теперь она может быть использована для сохранения библиотеки с закрытым исходным кодом

Да, это во избежание компиляции исходного кода GtkD каждый раз.

Попробуй использовать pragma(lib, "GtkD"); скорее, чем pragma('lib', 'GtkD.lib');

Меня устраивает.

Другие вопросы по тегам