2017-03-21 122 views
0

我有一個C++源文件FileLogger.cpp包括:gcc編譯錯誤:stl_construct.h

#include <iostream> 
#include <sstream> 
#include <vector>     << line 23 
#include "FileLogger.h"   

用gcc 4.8在Ubuntu 14.04,此文件導致編譯器錯誤:

Compiling /mnt/c/<snip>/FileLogger.cpp 
In file included from /usr/include/c++/4.8/vector:62:0, 
       from /mnt/c/<snip>/FileLogger.cpp:23: 
/usr/include/c++/4.8/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, _Args&& ...) [with _T1 = std::basic_ofstream<char>; _Args = {std::basic_ofstream<char, std::char_traits<char> >}]’: 
/usr/include/c++/4.8/bits/stl_uninitialized.h:75:53: required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<std::basic_ofstream<char>*>; _ForwardIterator = std::basic_ofstream<char>*; bool _TrivialValueTypes = false]’ 
/usr/include/c++/4.8/bits/stl_uninitialized.h:117:41: required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<std::basic_ofstream<char>*>; _ForwardIterator = std::basic_ofstream<char>*]’ 
/usr/include/c++/4.8/bits/stl_uninitialized.h:258:63: required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<std::basic_ofstream<char>*>; _ForwardIterator = std::basic_ofstream<char>*; _Tp = std::basic_ofstream<char>]’ 
/usr/include/c++/4.8/bits/stl_uninitialized.h:281:69: required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = std::basic_ofstream<char>*; _ForwardIterator = std::basic_ofstream<char>*; _Allocator = std::allocator<std::basic_ofstream<char> >]’ 
/usr/include/c++/4.8/bits/vector.tcc:556:42: required from ‘void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp = std::basic_ofstream<char>; _Alloc = std::allocator<std::basic_ofstream<char> >; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’ 
/usr/include/c++/4.8/bits/stl_vector.h:667:41: required from ‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = std::basic_ofstream<char>; _Alloc = std::allocator<std::basic_ofstream<char> >; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’ 
/mnt/c/<snip>/FileLogger.cpp:72:38: required from here 

我不明白這個錯誤。該代碼在Visual Studio 2015下編譯得很好。

任何人都可以幫助我嗎?

+0

從這裏http://stackoverflow.com/questions/15644938/what-does-in-instantiation-of-required-from-here-mean它看起來像代碼中可能會出現一些錯誤。所以如果你發佈代碼也會有所幫助。 –

+0

看起來你錯過了錯誤信息中最重要的部分;應該有一些跡象表明實際問題是什麼,而不僅僅是回溯。您應該創建一個[最小,完整且可驗證的示例](https://stackoverflow.com/help/mcve)。 – TartanLlama

回答

0

按照評論建議升級到g ++ 5(Ubuntu 16.04 LTS)修復。謝謝。