我正在使用Netbeans C++创建一个小项目。我有这个简单的代码:

int main(int argc, char** argv) {
    cv::namedWindow("Output");

    // Create Receiver and Decoder on another thread
    boost::thread t1 = boost::thread(startReceiver); // Details irrelevant
    boost::thread t2 = boost::thread(startDecoder);  // Details irrelevant

    std::cout << "Waiting..." << std::endl;

    t2.join();
    t1.join();

    std::cout << "Finished." << std::endl;

    return 0;
}

该程序卡在cv::namedWindow("Output");上。我已经使用GDB暂停了程序,这是调用堆栈:

poll ()
?? ()
xcb_connect_to_fd ()
xcb_connect_to_display_with_auth_info ()
_XConnectXCB ()
XOpenDisplay ()
gdk_display_open ()
gdk_display_open_default_libgtk_only ()
gtk_init_check ()
gtk_init ()
cvInitSystem ()
cvNamedWindow ()
main (argc=1, argv=0x7fffffffe4c8)

它正在轮询某些东西,我不知道...有什么想法吗?

最佳答案

看来这是与GTK相关的问题。尝试使用标准窗口:

cv::namedWindow("Output", CV_WINDOW_NORMAL|CV_GUI_NORMAL);

关于c++ - cv::namedWindow()在调用时挂起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15388781/

10-09 09:04