我在OS X 10.10和XCode 6.1.1上使用POCO库1.6.0来构建mac应用程序。
我使用以下配置编译它以进行静态链接:
./configure --omit=Data/ODBC,MonoDB,Data/MySQL,Data/SQLite --config=Darwin64-clang-libc++ --static
这样可以成功编译并生成.a文件。
我已将XCode中的库链接到链接的框架和库下。
该应用成功运行 问题:
然而,在执行Poco :: Net :: HTTPRequest到http://example.org时,它失败并显示错误:不支持Net Exception Address系列。这里也有一个封闭的问题:https://github.com/pocoproject/poco/issues/657。
仅当Build Configuration设置为" Debug"而不是"发布"这很奇怪。
以下是代码:
void test(){
Poco::JSON::Object result;
result.set("error", "0");
result.set("errorMessage","");
result.set("response","");
result.set("success", "true");
try {
Poco::URI uri("http://example.org/?time=12345");
Poco::Net::HTTPClientSession session(uri.getHost(), uri.getPort());
Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET,uri.getPath(), Poco::Net::HTTPMessage::HTTP_1_1);
req.set("User-Agent","Chrome/3.2");
session.sendRequest(req); // sends request, returns open stream
// Get response
Poco::Net::HTTPResponse res;
std::istream& is = session.receiveResponse(res);
std::string str=std::string((std::istreambuf_iterator<char>(is)),
std::istreambuf_iterator<char>());
std::cout<<str;
} catch (Poco::Exception& e) {
result.set("error", 103);
result.set("errorMessage",e.what()+e.message());
result.set("success", "false");
}
std::ostringstream stream;
result.stringify(stream);
std::string str = stream.str();
std::cout<<""<<str<<"";
}