无法链接到quantlib

时间:2014-02-14 18:32:16

标签: c++ gcc quantlib

我正在尝试学习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不正常。

我有点迷失在这里......任何线索?

2 个答案:

答案 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$