Я пытаюсь использовать Poco Библиотека C ++ для выполнения простых http-запросов в C ++ на Mac OS X 10.8.2. Я установил 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
Бороться с этим уже пару часов. Есть идеи, как это исправить? Заранее спасибо!
Poco::URI
, Poco::StreamCopier
классы в PocoFoundation
библиотека, так что вам нужно будет также связаться с этой библиотекой.
g++ -o http_get http_get.cc -lPocoNet -lPocoFoundation
Похоже, вы не указали путь включения для библиотеки и библиотеки, которые будут использоваться при компиляции исходного кода.
Необходимо указать директиву -I и -L для g ++, чтобы указать путь включения для библиотеки и самой библиотеки соответственно.