Я попытался установить QuantLib-1.4 на Cygwin вместе с Boost_1_55_0, в основном, выполнив следующие действия: http://quantess.net/2012/09/26/quantlib-get-it-working-on-ubuntu/
После установки я запустил тестовые случаи Quantlib без ошибок:
xxx@xxx /usr/local/lib/QuantLib-1.4/test-suite
$ ./quantlib-test-suite.exe
Running 567 test cases...
Tests completed in 15 m 20 s*** No errors detected
Однако, когда я запустил простой код (main.cpp):
#include <ql/quantlib.hpp>
int main(){
return 0;
}
Кажется, что возникают ошибки компоновщика.
xxx@xxx /usr/local/lib
$ g++ -lQuantLib main.cpp
/tmp/ccvjpqgC.o:main.cpp:(.text$_ZNK8QuantLib4DateplERKNS_6PeriodE[__ZNK8QuantLib4DateplERKNS_6PeriodE]+0x2e): undefined reference to `QuantLib::Date::advance(QuantLib::Date const&, int, QuantLib::TimeUnit)'
/tmp/ccvjpqgC.o:main.cpp:(.text$_ZN8QuantLib5ErrorD1Ev[__ZN8QuantLib5ErrorD1Ev]+0xd): undefined reference to `vtable for QuantLib::Error'
/usr/lib/gcc/i686-pc-cygwin/4.8.2/../../../../i686-pc-cygwin/bin/ld: /tmp/ccvjpqgC.o: bad reloc address 0xd in section `.text$_ZN8QuantLib5ErrorD1Ev[__ZN8QuantLib5ErrorD1Ev]'
collect2: error: ld returned 1 exit status
Я попытался добавить INCLUDE_PATH и LIBRARY_PATH в переменные окружения Windows с небольшой разницей. Любая помощь здесь? (Я довольно новичок в GCC & Linux Env … Спасибо)
Извините, я так поздно на вечеринку.
Это причуды GCC. Ваша команда не работает, но
g++ main.cpp -lQuantLib
делает вместо этого (см., например, Почему порядок, в котором связаны библиотеки, иногда вызывает ошибки в GCC? для подробного объяснения; короче говоря, gcc сканирует аргументы слева направо и ничего не загружает из QuantLib, если это первый аргумент, потому что никакой другой код еще не запрашивал никаких его функций).
Других решений пока нет …