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');
Меня устраивает.