rails s
命令在下面显示此问题;我不知道那是什么吗?该项目用于运行良好;我也没什么改变。
[vns@betito perseus]$ rails s
/usr/include/c++/8/bits/stl_vector.h:932: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = v8::Handle<v8::Value>; _Alloc = std::allocator<v8::Handle<v8::Value> >; std::vector<_Tp, _Alloc>::reference = v8::Handle<v8::Value>&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)
我的环境:
Fedora 28
ruby 2.5.1
rails 5.2.0
libg++ 8.1.1
奇怪的是,我在另一个项目中执行了相同的命令,并且运行得很好。
我想念什么吗?
[vns@betito perseus]$ rails
The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
test Run tests except system tests (short-cut alias: "t")
test:system Run system tests
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
new Create a new Rails application. "rails new my_app" creates a
new application called MyApp in "./my_app"
All commands can be run with -h (or --help) for more information.
In addition to those commands, there are:
/usr/include/c++/8/bits/stl_vector.h:932: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = v8::Handle<v8::Value>; _Alloc = std::allocator<v8::Handle<v8::Value> >; std::vector<_Tp, _Alloc>::reference = v8::Handle<v8::Value>&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)
如果我尝试执行该命令,但最后却坏了。
答案 0 :(得分:0)
似乎是这个' gem“ less-rails” ';谢谢你的帮助
我删除了gem,服务器运行正常;我必须检查是否有适用的旧版本。
此问题与该_GLIBCXX_ASSERTIONS编译标志在Fedora 28中默认打开有关;并导致许多软件故障。
更多更新: 我发现了问题,并且与“ therubyracer”库有关 使用向量超出范围存在一个错误。
此行: 返回&vector [0];
在文件上:ext / v8 / rr.h#L223
现在libstdc ++ 8.1正在使用断言进行检查。
我使用自己的分支库对其进行了测试,并且可以正常工作。