0

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

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

4

1 回答 1

0

您应该为 cpp-netlib (-L) 和要链接的库 (-l) 指定库路径:

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

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

于 2015-05-04T11:55:41.873 回答