Подтвердить что ты не робот

Как начать работу с D на Mac OS X 10.6 (Snow Leopard)

Меня интересовало " D" в течение нескольких лет и недавно решило начать играть с ним. Я очень легко понял основные вещи, мне нравится базовый набор функций языка, и чем больше я читаю об этом, тем больше впечатлений я получаю.

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

Есть только одна большая проблема... за последние пару дней я полностью не смог настроить работу какой-либо среды IDE. Я могу скомпилировать и запустить все в командной строке, но все, что я пытаюсь использовать в любой из доступных IDE (Code:: Blocks, eclipse + descent, Xcode с плагином D и даже Windows D-IDE, работающие в VirtualBox в Windows XP Pro), единственное, что когда-либо случается:

object.d: Error: module object cannot read file 'object.d'

После двух дней попыток разных вещей и последующих уроков, это действительно нервничает. Я хочу научиться эффективно использовать D, но мне нужна удобная цепочка инструментов, которая включает в себя завершение кода в редакторе, если я хочу сохранить свое здравомыслие, что я, очевидно, делаю.

[edit: добавлено выделение важного бита действительно]

Есть ли кто-нибудь, кто может помочь мне настроить eclipse или (предпочтительно) netbeans (но плагин, похоже, не доступен для публики), чтобы дать мне возможность компиляции и запуска в среде IDE вместе с завершением кода? на моем Mac, работает Mac OS X 10.6?

Я хочу использовать библиотеки phobos (и, следовательно, компилятор 2.0), но мне все равно, если его dmd или gdmd (gdcmac).

[добавление]

Я считаю, что мы можем предположить, что моя установка компилятора dmd в порядке, потому что она работает из командной строки. Я просто не хочу использовать его из командной строки, потому что это утомительно. Вопрос в том, и IDE, компилятор работает, его просто IDE, которые не будут

4b9b3361

Ответ 1

Ну, постоянный педераст во мне не мог оставить проблему в покое, и я, наконец, получил ее на работу.

Необходимыми компонентами для работы с Mac OS X 10.6 являются:

  • Компилятор DMD
  • Eclipse "Galileo" (версия 3.4)
  • Descent
  • DSSS
  • изменение /usr/etc/rebuild/default
  • новый файл, который я взломал вместе /usr/etc/rebuild/macosx.conf
  • глобальные и параметры для проекта для Eclipse

После выполнения этих инструкций Eclipse сможет выполнить завершение кода в ваших проектах D, и вы также сможете создавать и запускать из среды IDE.

Фактические действия для его работы следующие.

  • установить компилятор digitalmars dmd 2.0
    • загрузите двоичное расписание из digitalmars.com (прямая ссылка на 2.041)
    • разархивируйте загруженный файл в ~/somefolder (который создал папку ~/somefolder/dmd2 для меня, которую я буду использовать в течение всего этого примера.)
    • в терминале (/Applications/Utilities/Terminal.app) переместите файлы в пункт назначения
    • sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/ введите свой пароль для входа в систему по запросу
    • переместите только что скопированный dmd.conf в его местоположение: sudo mv /usr/bin/dmd.conf /etc/dmd.conf
    • sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/
    • sudo mv ~/somefolder/dmd2 /usr/
    • используйте свой любимый текстовый редактор для редактирования /etc/dmd.conf, чтобы содержать следующее:

[Окружающая среда]

DFLAGS = -I/usr/dmd2/src/phobos -I/usr/dmd2/src/druntime/import -L-L/usr/lib

  1. Загрузите и установите свою любимую версию eclipse Mac OS X из множества сотен, доступных по адресу http://www.eclipse.org/downloads/ (я выбрал cocoa версия для c/С++)
  2. Установить Descent (почти как обычные инструкции в вики)
    • запустите Eclipse (не запускайте его как root)
    • перейти HelpInstall New Software из строки меню. (wtf делает это в меню Help?!)
    • скопировать/вставить http://downloads.dsource.org/projects/descent/update-site в поле URL.
    • Следуйте инструкциям на экране, чтобы завершить установку.
  3. установите dsss из sourceforge (прямая ссылка на .dmg)
    • используйте установочный пакет на образ диска, как и любой другой.
    • создайте файл /usr/etc/rebuild/macosx.conf и вставьте в него следующий фрагмент. (и сохранить, duh)
profile=phobos
compiler=dmd
inifile=dmd.conf
exeext=
objext=o
version=DigitalMars
noversion=GNU
version=MacOSX
version=linux
noversion=Unix
noversion=Posix
noversion=Windows
noversion=Win32
noversion=Win64
version=X86
noversion=PPC
noversion=X86_64
version=D_InlineAsm
version=D_InlineAsm_X86
noversion=D_InlineAsm_PPC
noversion=D_InlineAsm_X86_64
version=LittleEndian
noversion=BigEndian

[compile]
cmd=dmd -version=MacOSX -c $i
flag=$i
incdir=-I$i
libdir=-L-L$i
optimize=-O
version=-version=$i

[link]
oneatatime=yes
#cmd=dmd -L-lphobos $i -of$o
cmd=dmd $i -of$o
# cmd=dmd -L--start-group -L-lphobos $i -of$o

libdir=-L-L$i
lib=-L-l$i
flag=-L$i

[liblink]
safe=yes
oneatatime=yes
cmd=if [ ! -z "$o" ]; then ar rc $o $i; fi

libdir=
lib=
flag=

[postliblink]
cmd=ranlib $i

[shliblink]
shlibs=no

[dyliblink]
dylibs=no
  1. измените файл /usr/etc/rebuild/default следующим образом: profile=dmd-macosx
    1. Настройка Eclipse для завершения кода
  2. В настройках глобального затмения выберите tp D = > Build Path = > User Libraries
    • нажмите New, введите "std", нажмите OK выберите вновь созданную запись, нажмите Add Directory
      • перейдите к /usr/dmd2/src/phobos/std и добавьте его.
    • Настройте проект Eclipse. Вы должны сделать это вручную для каждого проекта D, который вы сделаете
    • Создайте новый проект с помощью мастера "D = > D Project" (благодаря Descent).
    • Перейдите в свойства проекта (щелкните проект правой кнопкой мыши в Project Explorer и выберите "Свойства" )
    • В списке слева выберите D Build Path и в появившейся панели выберите вкладку Include Path.
    • Нажмите кнопку Add Library и выберите std на второй странице мастера.
    • Настроить инструмент сборки extarnal
    • Перейдите в External tools configurations... (из раскрывающегося списка маленькой зеленой кнопки воспроизведения с панелью инструментов перед ней в панели инструментов build/run/debug thingy)
    • В списке слева щелкните правой кнопкой мыши Program и выберите New из контекстного меню.
    • дайте вашей конфигурации достойное имя типа "Build with dsss" и установите следующие параметры:
      • Местоположение: /usr/bin/dsss
      • Рабочий каталог: полный путь к каталогу с вашим файлом dsss.conf для проекта (если у вас нет файла dsss.conf, создайте его в командной строке: dsss genconfig)
      • Аргументы: build (или перестроить, или очистить, или...)
    • повторите шаги 2 и 3 выше для того, чтобы как можно больше вариантов сборки/запуска.

Поздравляем, теперь все должно работать.

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

Ответ 2

object.d: Error: module object cannot read file 'object.d'

ясно указывает, что он не может правильно найти библиотеки. Итак, первый вопрос: как настроен ваш dmd.conf. Вы должны убедиться, что это указывает на правильные места для src/phobos, src/druntime/import и osx/lib - везде, где вы их разместили. Лично я помещаю код dmd в подпапку дома и не пытаюсь установить его в /usr, но в инструкциях вам указывается, что вы устанавливаете их там по умолчанию, поэтому он должен работать.

Предполагая, что ваш dmd.conf выглядит нормально, наиболее вероятная ситуация заключается в том, что на самом деле он использует неправильный dmd.conf. В соответствии с инструкциями на сайте digital mars (http://www.digitalmars.com/d/2.0/dmd-osx.html):

dmd will look for the initialization file dmd.conf in the following sequence of directories:

 1. current working directory
 2. directory specified by the HOME environment
 3. variable directory dmd resides in
 4. /etc/

Я предполагаю, что вы поместили dmd.conf в /etc и отредактировали его, но оставили исходный файл dmd.conf в

/where_dmd_is/dmd2/osx/bin/

Конечно, это случилось со мной раз или два. В любом случае, первое, что вам нужно убедиться, это то, что dmd.conf, который вы редактируете, является тем, который использует dmd (поэтому убедитесь, что места, где dmd выглядит сначала, не имеют dmd. conf), а второе, что вам нужно сделать, это убедиться, что пути в вашем dmd.conf правильно указывают на то, где находится материал dmd. Если эти две вещи верны, то dmd должен правильно найти библиотеки.

Тем не менее, я хотел бы отметить, что, учитывая ваш комментарий о том, что вы хотите использовать разделяемые библиотеки, это то, что совместно используемые библиотеки не работают корректно с D2 прямо сейчас (я не знаю, работают ли они с D1, так как я 't использовать D1 - я подозреваю, что они этого не делают). Об этом шла дискуссия в группе новостей D (http://www.digitalmars.com/NewsGroup.html), поэтому вы можете посмотреть там. Это что-то на радаре, и его изучают, но он еще не полностью работает. Кроме того, вы можете посмотреть в группу новостей для дальнейшей помощи по вопросам, связанным с D. Вероятно, это лучшее, что можно задать прямо сейчас.

Ответ 3

Если вопрос об IDE, насколько это касается eclipse, я считаю, что плагин, на который нужно смотреть, спускается: http://www.dsource.org/projects/descent

К сожалению, я еще не пробовал это сам, поэтому я не знаю, насколько он хорош. Согласно своей вики-странице, она в первую очередь предназначена для D1, но поддерживает D2 как минимум в некоторой степени.

Ответ 4

Если вы хотите быстро начать (aka Double-click-install): D для Xcode

Требования:

  • Xcode

Что это. Устанавливает последний компилятор dmd, поэтому он работает и в Terminal и т.д.

Ответ 5

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

В настоящее время; В эпоху горного льва гораздо легче найти решение проекта Mono-D

Просто установите MonoDevelop (или Xamarin Studio) и следуйте пятиминутному руководству по установке

Ответ 6

(Вы можете использовать Phobos на D 1.0. В любом случае...)

Где вы установили заголовки Phobos и druntime?

<the .zip file>/src/druntime/
<the .zip file>/src/phobos/

Обычно я копирую их в /usr/include.

(Также попробуйте отредактировать dmd.conf, чтобы использовать абсолютный путь:

[Environment]
DFLAGS=-I/usr/include/phobos -I/usr/include/druntime/import -L-L/usr/lib

)