当包含<boost thread =“”>时,应用程序在启动时终止

时间:2017-11-09 23:27:51

标签: c++ boost boost-thread

在下面的简单代码中,如果我包含boost线程库,程序在执行时终止,甚至没有达到main函数。

一切正常编译,0警告,0错误。

我的环境:

  • Eclipse Kepler
  • boost_1_65_1
  • gcc 6.3.0
  • Mingw(不知道版本,我目前在sourceforge上发布)
  • 在Project / C / C ++构建/设置中
    • GCC C ++编译器/包含:c \ boost \ boost_1_65_1
    • MinGW C ++链接器/库:
      • 图书馆搜索路径:C:\ boost \ boost_1_65_1 \ stage \ lib
      • 图书馆:llibboost_thread-mgw63-mt-1_65_1,libboost_system-mgw63-mt-1_65_1,libboost_chrono-mgw63-1_65_1

代码:

function show() {
    var events = {
        url: 'php/get-events.php',
        data: {
            q:"", // my parameter
            code: "", // my parameter
            startDate: '2014-08-08', //fullcalendar parameter
            endDate: '2015-08-08', // fullcalendar parameter
        },
        success: function (data){
            var events = Object
                .keys(data)
                .map(function(key) {
                    return data[key];
                })
                .map(function(post, index) {

                    var json = {
                        q: post.q,
                        code: post.code,
                        start: post[window.fc_startParam]
                        end: post[window.fc_endParam]
                    }

                    return json;

                });

            return events;

        },
    }
    $('#calendar').fullCalendar('removeEventSource', events);
    $('#calendar').fullCalendar('addEventSource', events);
}

我不知道问题的根源是什么,是:

  • 我构建Boost / Thread的方式
  • 如何配置项目

gdb跟踪显示此错误:

#include <iostream>
#include <boost/thread/thread.hpp>
int main(int argc, char* argv[])
{
std::cout << "StackUnderFlow" << std::endl;
return 0;
}

1 个答案:

答案 0 :(得分:0)

代码需要编译并与-pthread选项链接。 -lpthread链接器选项不够且不必要。