Я встановив boost_1_54 на вікна за допомогою перевірки з svn, а потім
bootstrap
.b2
Бібліотека QuantLib, залежна від підвищення, добре компілюєтьсявсе, крім одного проекту: test-suite, який використовує BOOST_MESSAGE. це не визначено. Я бачу, що в моїй версії boost не існує BOOST_MESSAGE. Тому чи є ця несумісність з QuantLib або щось я пропустила? На моїй linux boost версії те ж саме стосується BOOST_MESSAGE - це не визначено
я бачив це але я не впевнений, як це інтерпретувати.
Відповіді:
6 за відповідь № 1Я боюся, що ти дав нам більше кредиту, ніж ми заслужили :)
Ми ще не скомпільовані QuantLib проти Boost svn.
Спасибі за хедз-ап, хоча. Я виправлю бібліотеку так, щоб вона була готова до наступної версії. Як згадувалося в коментарях, він повинен бути таким же простим, як додавання
#if BOOST_VERSION > 105300
#define BOOST_MESSAGE(msg) BOOST_TEST_MESSAGE(msg)
#endif
до test-suite / utilities.hpp.
0 для відповіді № 2
на Linux я повинен був додати
libboost_unit_test_framework.so
до Linker-> Libraries і
#include <boost/test/unit_test.hpp>
#define BOOST_MESSAGE( M ) BOOST_TEST_MESSAGE( M )
вже присутній у тесті / test_tools.hpp. на windows у мене різні #defines і цього немає, тому я додав його до
unit_test_log.hpp
де визначено BOOST_TEST_MESSAGE (у файлах підвищення, щоб уникнути подібних проблем у випадку інших програм, що використовують BOOST_MESSAGE). Вирішено проблему BOOST_MESSAGE, але все ще не можна розпізнати
const void* = boost::test_tools::check_is_close
і
const void* = boost::test_tools::check_is_small
тому що це шаблони. тому рішення полягає в тому, щоб видалити його (test-suite добре компілюється) або використовувати відповідні покажчики до шаблонів функцій
0 для відповіді № 3
на Windows, після романування або функції
_use_check
у utilities.hpp
змінені, щоб не мали вказівки на функції TEMPLATE як типові, тому змінено на:
void _use_check(
const void*,
const void*) const {}
були ще помилки під час створення тестового комплектупроекту. невирішені зовнішні: fdmhestonfwdop, fdmblackscholesfwdop, fdmsquarerootfwdop. Очевидно, що ці класи (заголовки + джерело) мені довелося додати до проекту Quantlib, побудувати бібліотеку QuantLib-vc110-mt-gd.lib і переробити тестовий набір. після задоволення з помилкою VS linker "lnk1210 перевищив внутрішній розмір посилання обмеження з інкрементним ні" (це дійсно подобається RAM, але на вікнах у мене цей ресурс досить обмежений), це нормально. складено. : стор