【问题标题】:Poco C++ library on OSX 10.8.2: Undefined symbols for architecture x86_64OSX 10.8.2 上的 Poco C++ 库:架构 x86_64 的未定义符号
【发布时间】:2012-10-16 22:53:10
【问题描述】:

我正在尝试使用Poco C++ 库在 Mac OS X 10.8.2 上的 C++ 中执行简单的 http 请求。我安装了 Poco,从 this tutorial 复制粘贴了 http_request.cc 代码,使用 'g++ -o http_get http_get.cc -lPocoNet' 运行它,但得到了:

Undefined symbols for architecture x86_64:
  "Poco::StreamCopier::copyStream(std::basic_istream<char, std::char_traits<char> >&, std::basic_ostream<char, std::char_traits<char> >&, unsigned long)", referenced from:
      _main in ccKuZb1g.o
  "Poco::URI::URI(char const*)", referenced from:
      _main in ccKuZb1g.o
  "Poco::URI::~URI()", referenced from:
      _main in ccKuZb1g.o
  "Poco::URI::getPathAndQuery() const", referenced from:
      _main in ccKuZb1g.o
  "Poco::URI::getPort() const", referenced from:
      _main in ccKuZb1g.o
  "Poco::Exception::displayText() const", referenced from:
      _main in ccKuZb1g.o
  "typeinfo for Poco::Exception", referenced from:
      GCC_except_table1 in ccKuZb1g.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

已经为此苦苦挣扎了几个小时。知道如何解决这个问题吗?提前致谢!

【问题讨论】:

  • 这看起来好像你需要包含一些库,例如,-lPocoNet(不过我猜是库的名称)。

标签: c++ macos http linker x86-64


【解决方案1】:

Poco::URI、Poco::StreamCopier 类在 PocoFoundation 库中,因此您还需要链接到该库。

g++ -o http_get http_get.cc -lPocoNet -lPocoFoundation

【讨论】:

    【解决方案2】:

    您似乎没有指定库的包含路径以及编译源代码时要使用的库。 您需要向 g++ 提供 -I 和 -L 指令,以分别指定库和库本身的包含路径。

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 2015-06-17
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多