g++でビルド中にSegmentation fault
解決したいこと
コンパイルを通したい。
例)
gSOAPでONVIFカメラのコードを書いてます。
gSOAPが生成したソースコードをラズパイ zero w上でコンパイル中にSegmentation Faultが発生しました。
解決方法を教えて下さい。もしくは、「そら大変やな」とコメントください。
発生している問題・エラー
g++ -I./ -I ~/gsoap-2.8/gsoap -I ~/gsoap-2.8/gsoap/plugin -DSOAP_H_FILE=wsddH.h -DWITH_OPENSSL -DWITH_DOM -DWITH_ZLIB -DDEBUG -c -o soapC.o soapC.cpp
soapC.cpp: In function ‘void* soap_instantiate(soap*, int, const char*, const char*, size_t*) ’:
soapC.cpp:18704:94: internal compiler error: Segmentation fault
return (void*)soap_instantiate___trt__GetMetadataConfiguration(soap, -1, type, arrayType, n);
^
0xb6aa410f ???
../sysdeps/unix/sysv/linux/arm/sigrestorer.S:64
0xb6a8e717 __libc_start_main
/home/pi/dev/glibc-buster/csu/libc-start.c:308
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-8/README.Bugs> for instructions.
make: *** [Makefile:23: soapC.o] Error 1
soapC.cpp の生成手順
環境
- linux環境で生成
- gSOAP ver.2.8.117
- g++ (Raspbian 8.3.0-6+rpi1) 8.3.0
wsdl2h実行し、onvif.hを生成
$ wsdl2h -O3 -P -x -o onvif.h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl https://www.onvif.org/ver10/events/wsdl/event.wsdl http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl
onvif.hをテキストエディタで修正
#import "wsdd5.h" // wsdd5 = <http://schemas.xmlsoap.org/ws/2005/04/discovery>
#import "xop.h" // xop = <http://www.w3.org/2004/08/xop/include>
#import "wsa5.h" // wsa5 = <http://www.w3.org/2005/08/addressing>
↓以下の様に修正↓
#import "wsdd10.h"
#import "xop.h" // xop = <http://www.w3.org/2004/08/xop/include>
#import "wsa5.h" // wsa5 = <http://www.w3.org/2005/08/addressing>
#import "wsse.h"
gsoap-2.8/gsoap/import/wsa5.hをテキストエディタで修正
int SOAP_ENV_Fault →int SOAP_ENV_Fault_alex
以下のコマンドで soapC.cpp 生成
$ soapcpp2 -j -c++ -2 -S -s -a -x -L -I ~/gsoap-2.8/gsoap/import -I ~/gsoap-2.8/gsoap -x onvif.h
自分でヤってみたこと
- swapファイルサイズが4GBだったので2GBにしてリトライ中
0