Настройка рабочего набора инструментов D2.x (с gtkd) в Ubuntu 10.04 - PullRequest
5 голосов
/ 10 октября 2010

Я несколько дней играл с D и очень волновался, пока не попытался заставить работать gtkd. Сейчас я потратил большую часть трех дней, пытаясь получить рабочую настройку, и начинаю немного (читать; давно получил) немного деморализоваться. Мне было интересно, если кто-нибудь может помочь, прежде чем я сдаюсь. Большая часть информации, которую я могу найти в Интернете, устарела, поэтому я не уверен, правильно ли я считаю, что это вообще возможно.

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

Итак, во-первых, мне нужно знать, действительно ли танго доступно для использования с D2.0, я считаю, что оно изначально не было, но теперь D2.x таков, что вы можете использовать танго и фобо рядом друг с другом. Если это не так, то я думаю, что я упал на первое препятствие, и это не стартер.

Шаги, которые я предпринял до сих пор.

  1. Я установил GDC из репозиториев Ubuntu
  2. Я установил libtango-заголовки из репозиториев (заметьте, только заголовки, нет доступных библиотек, так что это не сильно поможет)
  3. Я вручную установил dsss

Эта установка скомпилирует D, но когда я пришел к установке gtkd (с dsss), он скомпилировался, но я получил всевозможные ошибки (связанные с танго), когда пытался скомпилировать что-либо, используя его. Ну, как я уже говорил, у меня не было libs, так что это не должно было быть неожиданным. Я попытался установить библиотеки танго вручную, но все равно получил массу ошибок и в конце концов прибегнул к dsss net install tango, который предупредил меня, что я не смогу вернуться к Фобосу (что меня смутило, как я уже говорил, думал, что эти два могут быть использованы вместе друг с другом) в любом случае, я продолжил, и это полностью испортило мои настройки. Я не мог собрать D сейчас.

Извините, я не могу более подробно рассказать о том, какие ошибки я получил в последнем разделе, честно говоря, не помню.

Во всяком случае, я удалил все, что я установил. И началось заново.

  1. я установил gdc из репозитория
  2. Я установил dsss вручную

Я сейчас прочитал, что последнее танго не работает с GDC (не уверен, что это правда), поэтому я

  1. Получил deb для dmd и установил его.
  2. Устанавливал последнее танго (libs и headers) вручную.
  3. Установлен gtkd с dsss

Теперь я не могу заставить dsss распознавать dmd, поэтому могу использовать только gdc с ним. Это, однако, не находит танго. Если я использую dmd напрямую, он находит tango и gtkd, но я получаю ошибки об устаревших операторах volatile. Что-то, что, очевидно, верно в D2.x, что возвращает меня к «танго даже поддерживается».

Черт возьми, я запутался!

[Перейти здесь]

Если кто-нибудь может дать мне пошаговые инструкции о том, как настроить рабочую настройку, я буду вечно благодарен!

Спасибо, Т.

Обновление: "Мы здесь!"

Итак, я скачал dmd.2.049.zip из http://www.digitalmars.com/d/download.html, распаковал его в свой домашний каталог и сделал export PATH = $PATH:~/dmd2/linux/bin (спасибо dsimcha).

Забыл про dsss. Получил svn-версию gtkd в соответствии с инструкциями на http://www.dsource.org/projects/gtkd/wiki/UsingSubversion. Отредактировал GNUmakefile, чтобы изменить префикс на /home/me/dmd2/linux и сделал make install.

Отредактировано ~/dmd2/linux/bin/dmd.conf, поэтому включаемые пути включены ../include (библиотеки gtkD помещены в ../lib, поэтому мне не нужно редактировать пути к библиотекам).

Теперь, наконец, для компиляции с gtkD мне нужно было связать с libgtkd и libdl, это было сделано, dmd mydprog.d -L-lgtkd -L-ldl (спасибо jpf).

Ответы [ 2 ]

6 голосов
/ 10 октября 2010
  1. Танго не работает с D2.Давным-давно были предприняты некоторые усилия по его переносу, но этот вид врезался в стену, и неясно, будет ли это когда-либо фактически закончено.OTOH Phobos для D2 на намного лучше, чем Phobos для D1, поэтому отсутствие танго не так плохо, как кажется.

  2. GDC поддерживает древнюю версию D2.Нет абсолютно никаких шансов компилировать gtkD.Вы должны использовать эталонный DMD-компилятор.

  3. Как правило, для правильной настройки DMD в Linux достаточно просто распаковать dmd.2.0xx.zip в свой домашний каталог и выполнить export PATH = $PATH:~/dmd2/linux/binчтобы убедиться, что исполняемый файл DMD находится на вашем пути.Тогда все должно работать (с DMD2 и Фобосом).

4 голосов
/ 10 октября 2010

Если вы хотите, чтобы dmd передавал аргументы компоновщику, вы должны поставить перед ним префикс -L. Я думаю, что для gtkd вам нужно связаться с библиотекой gtkd и libdl.

-L-lgtkd -L-ldl
...