Если вы хотите, чтобы ссылки на переменные были расширены (цель, которую я имел для себя), вы могли бы сделать следующее.
contents="$(cat something.txt)"
echo $(eval echo \"$contents\")
(Кэшированные цитаты вокруг $ содержимого здесь являются ключевыми)
Что ж, упорный гад во мне не мог оставить проблему в покое, и я наконец заставил ее работать.
Чтобы все это работало в Mac OS X 10.6, необходимы следующие компоненты:
] / usr / etc / rebuild / default
/usr/etc/rebuild/macosx.conf
. После выполнения этих инструкций вы Eclipse сможет выполнять автозавершение кода в ваших проектах D, и вы также сможете создавать / запускать из среды IDE.
Фактические шаги по приведению его в действие заключаются в следующем.
~ / somefolder
(который создал для меня папку ~ / somefolder / dmd2, которую я буду использовать в этом примере) / Приложения / Утилиты / Терминал.app
) переместите файлы в место назначения sudo mv ~ / somefolder / dmd2 / osx / bin / * / usr / bin /
введите пароль для входа, когда его попросят 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 -LL / usr / lib
Help
-> Insta Все новое программное обеспечение
в строке меню. (wtf делает это в меню Help
?!) http://downloads.dsource.org/projects/descent/update-site
в URL-адрес поле. /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
/ usr / etc / rebuild / default
, чтобы он читался так: profile = dmd-macosx
D
=> Путь сборки
=> Пользовательские библиотеки
Создать
, введите «std», нажмите ОК
выберите новый созданную запись, щелкните Добавить каталог
/ usr / dmd2 / src / phobos / std
и добавьте его. D Build Path
и на появившейся панели выберите вкладку Include Path
. Добавить библиотеку
и выберите std
на второй странице мастера. Настройки внешних инструментов ...
(из раскрывающегося списка на маленькой зеленой кнопке воспроизведения с набором инструментов перед ним на панели инструментов сборки / запуска / отладки) Программа
и выберите Создать
из контекстного меню. / usr / bin / dsss
dsss genconfig
) build
(или перестройка, или очистка, или ...) Поздравляю, теперь все должно работать.
Если по какой-то причине это не сработает для вас, дайте мне знать, и я буду рад выяснить, где что-то пошло не так, и помогу вам заставить это работать. Если есть способ лучше или проще, я тоже хотел бы узнать об этом.
Если речь идет об IDE, что касается eclipse, я считаю, что плагин, на который стоит обратить внимание, - это спуск: http: // www.dsource.org/projects/descent
К сожалению, я сам еще не пробовал, поэтому не знаю, насколько он хорош. Согласно его странице вики, он в первую очередь предназначен для D1, но, по крайней мере, до некоторой степени поддерживает D2.
(Вы можете использовать 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
)
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. Вероятно, это лучшее место, чтобы спросить прямо сейчас.
Если вы хотите быстро начать работу (установка двойным щелчком): D для Xcode
Требования:
Вот и все. Устанавливает последнюю версию компилятора dmd, поэтому он также работает в Терминале и т. Д.