我正在尝试学习QuantLib,这是我的第一个程序,我打算检查我的环境是否正常,并且我能够链接到quantlib:
#include <ql/time/all.hpp>
using namespace QuantLib;
int main ()
{
Date d1(14, February, 2014);
return 0;
}
我的/ usr / local / lib下安装了我的quantlib库,/ usr / local / include / ql下的头文件。我尝试用以下代码编译这个小程序:
$ LC_ALL=C g++ -Wall -lQuantLib -o sample1 quantlib-sample-1.cpp
/tmp/cc4Z2xsf.o: In function `main':
quantlib-sample-1.cpp:(.text+0x1f): undefined reference to `QuantLib::Date::Date(int, QuantLib::Month, int)'
collect2: error: ld returned 1 exit status
如果我包含&#34; ql / quantlib.hpp&#34; (更多像上面那样的错误)。我试过传递&#34; -L / usr / local / lib&#34;如果我的ldconfig不正常。
我有点迷失在这里......任何线索?
答案 0 :(得分:1)
用于编译的命令格式不正确。图书馆链接选项需要追求输出和输入。这有效:
$ LC_ALL=C g++ -Wall -o sample1 quantlib-sample-1.cpp -lQuantLib
在命令末尾使用'-lQuantLib'。
它包括'ql / quantlib.hpp'或'ql / time / all.hpp'。
答案 1 :(得分:0)
如果我将第一行更改为更一般(并推荐)的catch-all include,它对我有用:
edd@max:/tmp$ g++ -o qldate qldate.cpp -lQuantLib ## no errors or warnings
edd@max:/tmp$ cat qldate.cpp
#include <ql/quantlib.hpp>
using namespace QuantLib;
int main ()
{
Date d1(14, February, 2014);
return 0;
}
edd@max:/tmp$