我尝试在Cygwin和Boost_1_55_0上安装QuantLib-1.4,主要通过以下步骤: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非常陌生.谢谢)
发布于 2014-06-04 09:35:54
抱歉,我这么晚才来参加聚会。
这是gcc的怪癖。你的命令不管用,但是
g++ main.cpp -lQuantLib相反,可以这样做(例如,请参阅Why does the order in which libraries are linked sometimes cause errors in GCC?以获得一个粗略的解释;简而言之,gcc从左到右扫描参数,如果它是第一个参数,则不会从QuantLib加载任何内容,因为目前还没有其他代码要求它的任何功能)。
https://stackoverflow.com/questions/22522682
复制相似问题