无法链接到量化库

Unable to link to quantlib

本文关键字:量化 链接      更新时间:2023-10-16

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

如果我包含"ql/quantlib.hpp"(像上面这样的错误要多得多),情况会变得更糟。我尝试传递"-L/usr/local/lib",如果我的 ldconfig 不正常。

我在这里有点迷茫...有什么线索吗?

用于编译的命令格式不正确。库链接选项需要遵循输出和输入。这有效:

$ LC_ALL=C g++ -Wall -o sample1 quantlib-sample-1.cpp -lQuantLib

命令末尾带有"-lQuantLib"。

它适用于"ql/

quantlib.hpp"或"ql/time/all.hpp"。

如果我将第一行更改为更一般(和推荐)的包罗万象,它对我有用:

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$