将cpp-netlib集成到预先存在的boost包中

时间:2015-05-04 09:06:46

标签: c++ boost cpp-netlib

我正在尝试将cpp-netlib集成到我之前存在的boost包中,并在我的程序中使用它。

我只是包括:

#include <boost/network/uri.hpp>

并试图像这样使用它:

boost::network::uri::uri u("http://google.com");

尝试这样做时,我收到链接器错误:

架构x86_64的未定义符号:

  "boost::network::uri::detail::parse(std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, boost::network::uri::detail::uri_parts<std::__1::__wrap_iter<char const*> >&)", referenced from:
      boost::network::uri::uri::parse() in Watcher.o

到目前为止我所做的是下载cpp-netlib, 使用cmake构建它,我相信这是成功的,因为我可以看到以下3个库:

libcppnetlib-client-connections.a
libcppnetlib-server-parsers.a
cppnetlib-uri.a

所以我的问题是我应该在哪里放置我生成的3个静态库,以确保正确的链接。 我已经可以在目录中看到一些库文件:

-Boost
     -bin.v2

这是我必须保留我的库以确保正确链接的地方。

1 个答案:

答案 0 :(得分:0)

您应该为cpp-netlib(-L)指定库路径,并为链接(-l)指定库:

-lcppnetlib-client-connections.a
-lcppnetlib-server-parsers.a
-lcppnetlib-uri.a 

在boost文件夹结构中没有地方放置库。编译应用程序时必须传递参数。