Мне бы очень хотелось больше узнать о D, но отсутствие хорошей поддержки библиотек действительно мешает мне. Поэтому я хотел бы создать некоторые привязки D для существующих библиотек C, которые я хотел бы использовать. Я никогда не делал привязок, но это тоже не выглядит слишком сложно.
Я планирую сделать это для D2 (не специально для D1, но если это может быть для обоих, даже лучше). Я использую компилятор DMD2.
- Какие условные обозначения следует использовать (я заметил операторы версий, псевдонимы и определения регулярных констант / функций)?
- Какая разница между связыванием со статической библиотекой (и, следовательно, связанной с ней) или динамической библиотекой? Есть ли разница в привязке?
- Для связывания статической библиотеки компилятор DMD, похоже, не принимает файлы .a или .o, только .lib и .obj. Означает ли это, что библиотеки должны быть скомпилированы с помощью компилятора DMC (в отличие от компилятора GCC), а затем связаны через компилятор DMD?
Если бы у кого-то был очень короткий пример того, как будет выполнено связывание, я был бы очень полон. В настоящее время я могу скомпилировать код C с помощью DMC, связать объектные файлы и запустить функции из кода C в D. Однако большинство библиотек C просто нуждаются в включении файла заголовка И должны быть связаны с ним на C. привязки, которые работают для этого ...
Спасибо!