Как использовать gtkD в Win7 и dmd (D2)? - PullRequest
8 голосов
/ 04 января 2012

Я скачал 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 ]

2 голосов
/ 17 февраля 2012

У меня также были проблемы с использованием 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 голос
/ 09 июня 2012

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

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

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

1 голос
/ 17 февраля 2012

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

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

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

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

    Не забудьте установить префикс в соответствии с вашими потребностями. "/ USR / местные" является нормальным значением по умолчанию и должно работать на большинстве систем без дальнейшей действие. Если выбранного префикса нет в вашем 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

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

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

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

1 голос
/ 04 января 2012

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

Edit:

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

0 голосов
/ 01 июня 2012

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

Загрузите bud / build (версия 3.04 работала нормально) и называйте это так build gtkD.brf

Ошибка

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

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

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

...