STL 컴파일시 에러
안녕 하세요....
문의 드릴것이 있어서 이렇게 글을 올립니다..
혹시 해결한 경험이 있으신 분들이 있으시면 메일이나 답글을 부탁 드립니다.
OS : HP-UX 11.11
g++ : 4.0.1 , 3.4.2
테스트 시스템(HP-UX 11.11, g++ 3.4.2)에서 컴파일 하고 잘 사용하던것인데,
메인 서버에 적용 하려니 컴파일시에 에러가 나네요..
환경 설정이나..뭐 이런게 있는지 답변 부탁 드립니다...
MPSS01:/data/drm20/src/liboracle2]make
rm -f liboracle2g.sl core
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include Record.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include Recordset.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include RecordPool.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include String.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include SimQue.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include Mutex.cpp
/usr/local/bin/g++ -O3 -g -c -fPIC -shared -D_REENTRANT -DHPUX -DKTF -I/usr/include -I/home/oracle/rdbms/demo -I/home/oracle/rdbms/public -I/home/oracle/plsql/public -I/data/drm20/include Oracle.cpp
/usr/local/include/c++/4.1.0/bits/stl_bvector.h: In member function 'void std::vector::_M_insert_range(std::_Bit_iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag)':
/usr/local/include/c++/4.1.0/bits/stl_bvector.h:542: error: expected unqualified-id before '(' token
/usr/local/include/c++/4.1.0/bits/stl_bvector.h: In member function 'void std::vector::_M_fill_insert(std::_Bit_iterator, size_t, bool)':
/usr/local/include/c++/4.1.0/bits/stl_bvector.h:897: error: expected unqualified-id before '(' token
/usr/local/include/c++/4.1.0/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_fill_insert(__gnu_cxx::__normal_iterator::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&)':
/usr/local/include/c++/4.1.0/bits/vector.tcc:353: error: expected unqualified-id before '(' token
/usr/local/include/c++/4.1.0/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_range_insert(__gnu_cxx::__normal_iterator::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag)':
/usr/local/include/c++/4.1.0/bits/vector.tcc:452: error: expected unqualified-id before '(' token
*** Error exit code 1
Stop.
비슷한 문제일 듯
http://dwf.blogs.com/beyond_the_paper/2007/01/linux_compilati.html
위 사이트에서 비슷한 에러 발생에 대한 언급이 있네요.
gcc 버전3에서 4로 바뀌면서 STL 부분이 크게 변한 부분이 있다는군요.
gcc v3 : const type1
gcc v4 : type1 const
결국 개발 머신과 메인 머신과의 gcc 차이로 발생일 듯 싶습니다.
아마 gcc4에 맞는 Oracle lib 패치를 찾아보셔야 할 것 같네요.
댓글 달기