Wt:致命错误:调用空 boost::function

Posted

技术标签:

【中文标题】Wt:致命错误:调用空 boost::function【英文标题】:Wt: fatal error: call to empty boost::function 【发布时间】:2016-02-11 07:49:22 【问题描述】:

我正在尝试自行构建“Wt”库(版本 3.3.5),但在尝试运行示例时失败。

我的环境是带有 Boost 1.53.0 的 Debian,我想为其构建库。

编译和链接 (gcc 4.7.2) 运行良好,但是当我尝试运行 Wt-Example (http://www.webtoolkit.eu/wt/doc/tutorial/wt.html) 时,服务器失败并显示:

完整的日志是:

foo@rtm:/tmp/$ wt_test --docroot .  --http-address 0.0.0.0 --http-port 9090
Option no-compression is implied because wthttp was built without zlib support.
[2016-Feb-11 10:35:29.326974] 6436 - [info] "config: reading Wt config file: /etc/wt/wt_config.xml (location = 'wt_test')"
Option no-compression is implied because wthttp was built without zlib support.
[2016-Feb-11 10:35:29.327938] 6436 - [info] "WServer/wthttp: initializing built-in wthttpd"
[2016-Feb-11 10:35:29.328281] 6436 - [info] "wthttp: started server: http://0.0.0.0:9090"
[2016-Feb-11 10:35:33.971973] 6436 - [info] "Wt: session created (#sessions = 1)"
[2016-Feb-11 10:35:33.972423] 6436 [/ mZ4BIN0ZPoVnqQTG] [info]     "WEnvironment: UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0)     Gecko/20100101 Firefox/44.0"
10.12.5.50 - - [2016-Feb-11 10:35:33.974561] "GET / HTTP/1.1" 200 4691
[2016-Feb-11 10:35:33.974722] 6436 - [info] "WebRequest: took 3.044ms"
[2016-Feb-11 10:35:34.026134] 6436 [/ mZ4BIN0ZPoVnqQTG] [error] "Wt: fatal error: call to empty boost::function"
[2016-Feb-11 10:35:34.026242] 6436 - [info] "WebController: Removing session mZ4BIN0ZPoVnqQTG"
[2016-Feb-11 10:35:34.026293] 6436 [/ mZ4BIN0ZPoVnqQTG] [info] "Wt: session destroyed (#sessions = 0)"
10.12.5.50 - - [2016-Feb-11 10:35:34.026374] "GET /?wtd=mZ4BIN0ZPoVnqQTG&sid=2063522618&webGL=true&scrW=1680&scrH=1050&tz=60&htmlHistory=true&deployPath=%2F&request=script&rand=4063601615 HTTP/1.1" 500 84
10.12.5.50 - - [2016-Feb-11 10:35:34.026375] "GET /?wtd=mZ4BIN0ZPoVnqQTG&request=style&page=1 HTTP/1.1" 200 0
[2016-Feb-11 10:35:34.026414] 6436 - [info] "WebRequest: took 0.5ms"
[2016-Feb-11 10:35:34.026430] 6436 - [info] "WebRequest: took 30.593ms"

有人知道如何找出这里出了什么问题吗?

我知道 Boost 版本不是最新的,但我想这应该不是问题?

问候, 范达伦

【问题讨论】:

【参考方案1】:

我收到此警告:

boost_1_60_0/boost/signal.hpp|17 col 4| warning: #warning "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING." [-Wcpp]

这看起来可能与事情有很大关系。

也就是说,它可以在我的 Ubuntu 机器上使用 g++-5 的 valgrind 下干净地运行和运行。 (使用libc++时确实链接失败)

【讨论】:

不,在使用 Boost 1.60.0 和 Signals2 时没有效果。错误仍然相同。很奇怪.. 嗯。您是如何使用信号 2 进行测试的? 我已经设置了 Boost 1.60.0 并运行了 cmake; Wconfig.h 包含#define WT_USE_BOOST_SIGNALS2

以上是关于Wt:致命错误:调用空 boost::function的主要内容,如果未能解决你的问题,请参考以下文章

致命错误 LifecycleOwners 必须在 registerForActivityResult 开始之前调用 register

BitmapFactory 无法解码流。致命的空指针错误

致命异常: main ,尝试在空对象引用上调用虚拟方法 [重复]

PHP致命错误:无法访问空属性

CUDA 链接错误 - Visual Express 2008 - 由于(空)配置文件导致 nvcc 致命

我在执行非查询 mysql.dll 期间遇到致命错误,并且空文件路径不合法