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

Если вы хотите, чтобы ссылки на переменные были расширены (цель, которую я имел для себя), вы могли бы сделать следующее.

contents="$(cat something.txt)"
echo $(eval echo \"$contents\")

(Кэшированные цитаты вокруг $ содержимого здесь являются ключевыми)

11
задан Kris 14 December 2015 в 14:54
поделиться

5 ответов

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

Чтобы все это работало в 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.

Фактические шаги по приведению его в действие заключаются в следующем.

  1. установить компилятор digitalmars dmd 2.0
    1. загрузить двоичный дистрибутив с digitalmars.com ( прямая ссылка на 2.041 )
    2. распакуйте загруженный файл в ~ / somefolder (который создал для меня папку ~ / somefolder / dmd2, которую я буду использовать в этом примере)
    3. в терминале ( / Приложения / Утилиты / Терминал.app ) переместите файлы в место назначения
    4. sudo mv ~ / somefolder / dmd2 / osx / bin / * / usr / bin / введите пароль для входа, когда его попросят
    5. переместите только что скопированный dmd. conf в его местоположение: sudo mv /usr/bin/dmd.conf /etc/dmd.conf
    6. sudo mv ~ / somefolder / dmd2 / osx / lib / * / usr / lib /
    7. sudo mv ~ / somefolder / dmd2 / usr /
    8. используйте свой любимый текстовый редактор, чтобы отредактировать /etc/dmd.conf , чтобы он содержал следующее:
  2. { {1}}

[Среда]

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

  1. Загрузите и установите вашу любимую версию eclipse для Mac OS X из бесчисленных сотен, доступных на http://www.eclipse.org/downloads/ (Я выбрал версию какао для c / c ++)
  2. Установить Descent ( почти согласно обычным инструкциям в вики ) {{1 }}
    1. запустите Eclipse (не беспокойтесь о запуске как root)
    2. goto Help -> Insta Все новое программное обеспечение в строке меню. (wtf делает это в меню Help ?!)
    3. скопируйте / вставьте http://downloads.dsource.org/projects/descent/update-site в URL-адрес поле.
    4. следуйте инструкциям на экране, чтобы завершить установку.
  3. установить dsss из sourceforge ( прямая ссылка на .dmg )
    1. используйте установочный пакет на образе диска, как и любой другой .
    2. создайте файл /usr/etc/rebuild/macosx.conf и вставьте в него следующий фрагмент. (и сохраните, черт возьми)
 profile = phobos 
compiler = dmd 
inifile = dmd.conf 
exeext = 
objext = o 
version = DigitalMars 
noversion = GNU 
version = MacOSX 
version = linux {{ 1}} noversion = Unix 
noversion = Posix 
noversion = Windows 
noversion = Win32 
noversion = Win64 
версия = X86 {{1} } noversion = PPC 
noversion = X86_64 
version = D_InlineAsm 
version = D_InlineAsm_X86 
noversion = D_InlineAsm_PPC 
noversion = D_InlineAsm_X86_64 
версия = LittleEndian 
noversion = BigEndian 
 
 [компилировать] 
cmd = dmd -version = MacOSX -c $ i 
flag = $ i {{ 1}} incdir = -I $ i 
libdir = -LL $ i 
optimize = -O 
version = -version = $ i 
 {{1} } [ссылка] 
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 = -LL $ i 
lib = -Ll $ i {{ 1}} flag = -L $ i 
 
 [liblink] 
safe = yes 
oneatatime = yes 
cmd = if [! -z "$ o"]; затем 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. В глобальных настройках eclipse перейдите по tp D => Путь сборки => Пользовательские библиотеки
    1. нажмите Создать , введите «std», нажмите ОК выберите новый созданную запись, щелкните Добавить каталог
      • перейдите в / usr / dmd2 / src / phobos / std и добавьте его.
    2. Настроить проект Eclipse. Вы должны делать это вручную для каждого проекта D, который вы будете создавать.
    3. Создайте новый проект с помощью мастера «D => D Project» (благодаря Descent)
    4. Войдите в проект свойства (щелкните проект правой кнопкой мыши в проводнике проектов и выберите «Свойства»)
    5. В списке слева выберите D Build Path и на появившейся панели выберите вкладку Include Path .
    6. Нажмите кнопку Добавить библиотеку и выберите std на второй странице мастера.
    7. Настройте внешний инструмент сборки
    8. Перейдите к Настройки внешних инструментов ... (из раскрывающегося списка на маленькой зеленой кнопке воспроизведения с набором инструментов перед ним на панели инструментов сборки / запуска / отладки)
    9. В списке слева щелкните правой кнопкой мыши Программа и выберите Создать из контекстного меню.
    10. дайте вашей конфигурации подходящее имя, например «Сборка с dsss», и установите следующие параметры:
      • Местоположение: / usr / bin / dsss
      • Рабочий каталог : полный путь к каталогу с вашим файлом dsss.conf для проекта (если у вас нет файла dsss.conf, создайте его в командной строке: dsss genconfig )
      • Аргументы : build (или перестройка, или очистка, или ...)
    11. повторите шаги 2 и 3, указанные выше, для любого количества параметров сборки / запуска, сколько вам нужно.

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

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

11
ответ дан 3 December 2019 в 08:03
поделиться

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

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

1
ответ дан 3 December 2019 в 08:03
поделиться

(Вы можете использовать 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

)

0
ответ дан 3 December 2019 в 08:03
поделиться
object.d: Error: module object cannot read file 'object.d'

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

Предполагая, что ваш dmd.conf выглядит нормально, наиболее вероятный s Дело в том, что на самом деле он использует неправильный файл 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 в / и т.д. и редактировали его, но оставили исходный dmd.conf в

/where_dmd_is/dmd2/osx/bin/

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

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

1
ответ дан 3 December 2019 в 08:03
поделиться

Если вы хотите быстро начать работу (установка двойным щелчком): D для Xcode

Требования:

  • Xcode

Вот и все. Устанавливает последнюю версию компилятора dmd, поэтому он также работает в Терминале и т. Д.

1
ответ дан 3 December 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: