我正在尝试学习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不合适的话。
我有点迷路了..。有线索吗?
发布于 2014-02-14 20:07:02
用于编译的命令格式错误。库链接选项需要在输出和输入之后进行。这样做是可行的:
$ LC_ALL=C g++ -Wall -o sample1 quantlib-sample-1.cpp -lQuantLib命令末尾有'-lQuantLib‘。
它的工作原理包括“ql/quantlib.hpp”或“ql/time/all.hpp”。
发布于 2014-02-14 19:39:32
如果我将第一行更改为更一般(并建议)捕获--所有这些都包括:
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$ https://stackoverflow.com/questions/21786930
复制相似问题