Cygwin:在cygwin中安装quantlib

时间:2014-03-20 03:07:44

标签: c++ gcc g++ quantlib

我尝试在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&amp; linux env很新...谢谢)

1 个答案:

答案 0 :(得分:1)

对不起,我已经很晚了。

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

g++ main.cpp -lQuantLib

代替(例如,参见Why does the order in which libraries are linked sometimes cause errors in GCC?进行详细解释;简而言之,gcc从左到右扫描参数,如果它是第一个,则不会从QuantLib加载任何内容参数因为没有其他代码请求它的任何功能。)