1

Poco C++ ライブラリを使用して、Mac OS X 10.8.2 の C++ で単純な http リクエストを実行しようとしています。Poco をインストールし、このチュートリアルの 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

これに数時間苦労しています。これを修正する方法はありますか?前もって感謝します!

4

2 に答える 2

3

、クラスはライブラリにあるためPoco::URI、そのライブラリにもリンクする必要があります。Poco::StreamCopierPocoFoundation

g++ -o http_get http_get.cc -lPocoNet -lPocoFoundation
于 2012-10-16T23:07:57.463 に答える
0

ライブラリのインクルード パスと、ソースのコンパイル時に使用するライブラリを指定していないようです。ライブラリとライブラリ自体のインクルード パスをそれぞれ指定するには、g++ に -I と -L ディレクティブを指定する必要があります。

于 2012-10-16T22:58:29.347 に答える