Так что казалось бы, что привязки C # для SWIG доступны. Нужно просмотреть репозиторий SVN или список файлов на SouceForge , чтобы найти их.
Папка SWIG содержит несколько подпапок, в зависимости от выбранного вами языка, в моем случае C # меня заинтересовал. Сначала вам нужно скачать SWIG, а это - переменная исполняемого файла для системы PATH
.
Обязательно прочитайте Readme.txt
, поскольку он содержит сведения о переменной окружения QL_DIR
, которую также необходимо создать.
Это может быть ограничением VS Express, но файл решения содержит как проект C #, так и проект C ++, из которых в любой момент могут быть открыты только части C # или C ++. Я бы предложил создать отдельные файлы решений для проектов C ++ и C #.
Исходя из .Net-фона, lib-файлов, obj-файлов и всего прочего джаза, связанного с c ++, требуется некоторое время, чтобы привыкнуть.
Действия, предпринятые для получения работающей библиотеки C #
- Загрузите QuantLib и Boost, как описано здесь
- Загрузите tar-шар из папки QuantLib-SWIG из SourceForge . Редактировать: На главной странице доступна загрузка zip . Это указано в подпапках. Проверьте папки v1.0 под
Bindings
- Запустите файл
swig.cmd
, расположенный в папке QuantLib-SWIG\CSharp
(сначала необходимо загрузить SWIG () -> это создаст файлы оболочки cs для Quantlib.
- Сборка проекта c ++
NQuantLibc
- обратите внимание, что созданная здесь dll должна всегда поставляться с dll, встроенной в NQuantlib C #. Он должен быть расположен в месте, доступном для чтения по атрибуту DLLImport
. (См. Порядок поиска в библиотеке Dynamic-Link на MSDN для получения списка местоположений)
- Сборка проекта C #
NQuantLib
Что мне нужно для среды разработки?
Кажется, что текущая версия QuantLib собирается только с VS 2008. В VS 2010 произошли некоторые изменения, которые вызвали некоторые проблемы с компиляцией. Проект C # работает нормально, но не забывайте менять Target Framework с v4 на v3.5 и ниже.
Примечание. На момент написания этой статьи существовала проблема с номером QL_HEX_VERSION
в исходных файлах проекта C ++ SWIG. После запуска swig.cmd
откройте проект VS и измените строку 344 из quantlib_wrap.cpp
на
#if QL_HEX_VERSION < 0x010001f0//0x010100f0
Я написал автору проекта и жду обратной связи. Редактировать: Луиджи, правильно сообщил мне, что это любая проблема с кодом в SVN (который я использовал). Он предложил использовать привязки QuantLib-SWIG-1.0.zip .
Quantlib также построен на VC ++ 2010 с последней версией.