首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cling加载库?

如何使用cling加载库?
EN

Stack Overflow用户
提问于 2016-06-07 13:16:29
回答 1查看 3K关注 0票数 4

这可能不是一个棘手的问题,我是一个C++新手。

我正在尝试在cling REPL中使用一个名为QuantLib的库。

我可以通过执行以下操作在GCC中加载库

代码语言:javascript
复制
#include "ql/quantlib.hpp"

然后用-lQuantLib编译。

在cling中,我尝试了以下3行的排列:

代码语言:javascript
复制
.I "ql/quantlib.hpp"
#include "ql/quantlib.hpp"
.L QuantLib

如果我首先运行#include,我会得到一个很长的错误,包括如下内容

代码语言:javascript
复制
You are probably missing the definition of
QuantLib::AbcdAtmVolCurve::accept(QuantLib::AcyclicVisitor&) Maybe you
need to load the corresponding shared library?

但如果我参选

代码语言:javascript
复制
.I "ql/quantlib.hpp"
#include "ql/quantlib.hpp"

然后一切看起来都很好。

.L Quantlib结果为

代码语言:javascript
复制
input_line_4:1:10: fatal error: 'QuantLib' file not found
#include "QuantLib"

不管它什么时候运行。

在kfsone的评论之后,我尝试了以下内容

代码语言:javascript
复制
.L /usr/lib/libQuantLib.so
#include "ql/quantlib.hpp"

这会给出一个简短的错误!

代码语言:javascript
复制
IncrementalExecutor::executeFunction: symbol '_ZN8QuantLib5ErrorC1ERKSslS2_S2_' unresolved while linking function '__cxx_global_var_init34'!
You are probably missing the definition of QuantLib::Error::Error(std::string const&, long, std::string const&, std::string const&)
Maybe you need to load the corresponding shared library?
EN

回答 1

Stack Overflow用户

发布于 2018-05-11 19:51:33

Cling需要知道要使用的结构/函数的语法,并拥有执行的二进制代码。

对于语法,您必须添加include,例如:

代码语言:javascript
复制
#include "myfile.hpp"

对于二进制代码,您必须像这样装入库:

代码语言:javascript
复制
#pragma cling load("myfile.so.9.220.0")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37671030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档