Macos 在OS X 10.10上使用静态链接Poco库时出错:不支持HTTP地址系列

Macos 在OS X 10.10上使用静态链接Poco库时出错:不支持HTTP地址系列,macos,poco-libraries,Macos,Poco Libraries,我正在使用OSX10.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 to

我正在使用OSX10.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 to时,它会失败,并出现错误:不支持Net Exception Address系列。这里还有一个已解决的问题:

只有当构建配置设置为“Debug”而不是奇怪的“Release”时,才会发生这种情况

代码如下:

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<<"";
}
void测试(){
Poco::JSON::对象结果;
结果集(“错误”,“0”);
result.set(“errorMessage”,即“”);
result.set(“response”,”);
结果集(“成功”、“真实”);
试一试{
Poco::URI(“http://example.org/?time=12345");
Poco::Net::HTTPClientSession会话(uri.getHost(),uri.getPort());
Poco::Net::HTTPRequest请求(Poco::Net::HTTPRequest::HTTP_GET,uri.getPath(),Poco::Net::HTTPMessage::HTTP_1_1);
请求集(“用户代理”、“Chrome/3.2”);
session.sendRequest(req);//发送请求,返回开放流
//得到回应
Poco::Net::HTTPResponse res;
std::istream&is=会话接收方响应(res);
std::string str=std::string((std::istreambuf_迭代器(is)),
std::istreambuf_迭代器();

std::coutIt很难在看不到任何代码的情况下提供帮助。我建议您从示例开始,然后从示例开始。您链接的内容与HTTPRequest无关。动态链接与*.dylib,静态链接与*。a@Alex,我已编辑以合并我正在使用的代码。我还尝试了您共享的链接中的代码,呵呵wever失败并出现同样的错误:Net Exception:Address family不受支持。仅供参考,如果我进行动态链接,我的代码段可以工作。不确定我做错了什么。您的帮助非常值得赞赏。我无法重现您的问题。我在OSX上构建并运行了静态httpget示例,没有任何问题。好的,我尝试了一些,发现它只会发生当项目在调试模式(默认情况下为“debug=1”)下构建时。静态库和此标志是否有任何特殊问题。如果我在发布模式下运行此功能,则其工作正常。我编辑了我的问题以反映这一点。有什么建议吗?没有,httpget和httpgetd对我来说都工作正常