0

我尝试在 Cygwin 上安装 QuantLib-1.4 和 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 环境很陌生......谢谢)

4

1 回答 1

1

对不起,我来晚了。

这是 gcc 的一个怪癖。你的命令不起作用,但是

g++ main.cpp -lQuantLib

相反(例如,为什么链接库的顺序有时会导致 GCC 中的错误?以获得详尽的解释;简而言之,gcc 从左到右扫描参数,如果它是第一个参数,因为还没有其他代码请求它的任何功能)。

于 2014-06-04T09:35:54.817 回答