Как использовать gtkD в Win7 и dmd (D2)?

Я загрузил gtkD-1.5.1 и извлекается в некоторых gtkD каталог. Что мне делать дальше? Я не понимаю, должен ли я скомпилировать и связать его с какой-нибудь библиотекой или просто ссылку на него в моем коде?


Изменить: (@dsimcha)

команда dsss build в gtkD main dir дал мне это:

Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
undemofy

Could not detect versions.
Could not detect versions.
atk => DO-atk

cairo => DO-cairo

gdk => DO-gdk

gdkpixbuf => DO-gdkpixbuf

gio => DO-gio

glade => DO-glade

glib => DO-glib

gobject => DO-gobject

gthread => DO-gthread

gtk => DO-gtk

gtkc => DO-gtkc

pango => DO-pango

но не была создана библиотека?

5 ответов

Решение

Я могу использовать GtkD без генерации файлов lib, используя rdmd.

  1. Вы должны установить Gtk+2 runtime
  2. Загрузите исходный код GtkD в какой-нибудь каталог
  3. Запустите rdmd --build-only -I / src

rdmd будет автоматически собирать GtkD и код вашего проекта в одиночку, пропуская необходимость создания libs и связывая его вручную.

У меня были проблемы с использованием DSSS в Windows, вы можете попробовать использовать Bud / Build.

Убедитесь, что build.exe находится где-то на вашем пути, затем откройте командную строку в папке gtkD/src/build. Тогда беги build gtkD.brf создавать GtkD.lib,

В зависимости от вашей версии DMD, вы получите много ошибок. Большинство из тех, что я получил, было устаревшим. Любой файл, где это произошло (он вам скажет), я просто преобразовал typedef в псевдоним, и он работал нормально. Другая ошибка, которую я получил, была с src/gtk/Toolbar.dи неоднозначная виртуальная функция getOrientation(), Чтобы это исправить, зайдите в src/gtk/OrientableIF.d а также /src/gtk/ToolShellIF.d и закомментируйте методы getOrientation.

Используя самую последнюю версию DMD (2.059), glib/DateTime.d не скомпилируется. Чтобы этот файл компилировался, просто закомментируйте метод override hash_t toHash(),

Когда вы компилируете свой проект, используйте dmd <source files> -L <C:\Path\To\File>\GtkD.lib

Сборка библиотеки. Я бы порекомендовал взглянуть на рекомендации по сборке проекта. Вот шаги, которые они размечают для сборки библиотеки:

  1. Получите последнюю стабильную версию DSSS и установите ее в своей системе.
  2. [НЕОБЯЗАТЕЛЬНЫЙ]. Обновите файл dsss.conf в корневом каталоге проекта в соответствии с вашими потребностями. В противном случае обратите внимание на клавишу defaulttargets. Если вам нужна стандартная сборка / установка gtkD, по умолчанию все в порядке.
  3. Сборка gtkD. Перейдите в корень проекта (где находится этот файл) и выполните следующую команду:

    $ dsss build
    
  4. Теперь вы можете установить библиотеки в вашу файловую систему. Из корня проекта запустите:

    $ dsss install **--prefix=/usr/local**
    

    Не забудьте установить префикс в соответствии с вашими потребностями. "/usr/local" является нормальным значением по умолчанию и должно работать на большинстве систем без дальнейших действий. Если выбранного префикса нет в вашей переменной PATH, не забудьте обновить переменные среды. Импортируемые файлы также будут автоматически установлены на выбранный префикс. Примечание. Для выполнения этого шага может потребоваться доступ с правами root в соответствии с настройками системы.

  5. Создайте свои собственные программы, используя предоставленные файлы dsss.conf из любой демонстрационной папки. Обратите особое внимание на флаги сборки, используемые для создания демоверсий. "-L-ldl" необходим в системах Linux.
  6. Повеселись!

Использование библиотеки: После этого вы можете использовать библиотеку несколькими различными способами в вашей собственной программе в зависимости от того, как она создается:

Если вы используете DSSS для создания своего собственного проекта, то все, что вам нужно сделать, это импортировать модули в код, подобный следующему:

import gtk.MainWindow;
import gtk.Label;
import gtk.Main;

void main(string[] args)
{
    Main.init(args);
    MainWindow win = new MainWindow("Hello World");
    win.setDefaultSize(200, 100);
    win.add(new Label("Hello World"));
    win.showAll();

    Main.run();
}

Ваш dss.conf будет выглядеть так:

name = helloworld
[helloworld.d]
target = helloworld

И используйте обычные шаги для сборки и установки:

$ dsss build
$ dsss install

Редактировать: Я только что заметил, что вы хотите использовать DMD напрямую, для компиляции вашего проекта вы можете использовать:

dmd helloworld.d -ofhelloworld -L+gtk.lib

Обратите внимание, что этот стиль сборки не рекомендуется для больших проектов, и вы должны использовать DSSS, когда это возможно.

Вам нужно скомпилировать gtkD в двоичный файл. Стандартный способ сделать это с помощью DSSS. В основном, скачайте и установите DSSS, а затем выполните dsss build из основного каталога gtkD.

Редактировать:

После того, как вы соберете gtkD с использованием DSSS, у вас будет куча файлов.lib в каталоге gtkD. Вы статически связываете их в своем приложении. Кроме того, вы должны иметь библиотеки GTK+, установленные в вашей установке Windows.

Похоже, что последняя версия не всегда работает "из коробки", вам лучше использовать магистральную систему HEAD, перейдя по http://www.dsource.org/projects/gtkd/browser/trunk и нажав ссылку Zip Archive по адресу снизу, версия, которая работала для меня, была r952.

Скачайте bud / build(версия 3.04 работала нормально) и назовите его следующим образом gtkD.brf

Ошибка

Не удалось обнаружить версии

вызвано отсутствием dmd в пути.

Я попробовал gtkD 1.5.1, которая является текущей последней, но потом у меня возникла проблема с typedef, и после того, как я исправил ее вручную, у меня возникла проблема с XOverlay, и после долгих поисков я обнаружил, что они оба исправлены в SVN, поэтому я получил магистраль HEAD и это сработало из коробки.

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