자르기 Onvif: soapC. 줄이기cpp 파일 크기 (2)
810 단어 Onvif
1. 컴파일 옵션
-DWITH_NOIDREF
2. 생성된 코드를 수정하고 모든 soap 제거default_xxx, 이 함수들은 모두 구조체의 구성원을 0으로 설정한 것이고memset으로 대체할 수 있다.
수정 방법: 우선 이 함수들을 삭제합니다.
cat onvifC.c |awk -F' ' 'BEGIN{i=0} /SOAP_FMAC3 void SOAP_FMAC4 soap_default_/{i=1;} /}/{if(i==1){i=0;}} {if(i==0){print $0}}'>all_no_default.c
정규 표현식으로 원래의 함수를memset으로 바꾸면 됩니다.
% s/soap_default_\([_a-zA-Z0-9]*\)[ ]*(soap, \(.*\));/memset(\2, 0, sizeof(struct \1));/g
% s/struct byte/char/g
……
물론 수정된 후에 약간의 교체 오류가 있을 수 있습니다. 예를 들어 enum 정의가 struct로 바뀌었습니다. 많지 않습니다. 수동으로 바꾸면 됩니다.
잠시 생각한 것은 이것뿐입니다. 여러분들이 더 좋은 방법이 있다면 교류를 환영합니다.
------상기 내용은 gSOAP 코드의 재단에서 발췌한 것이다
참조 자료:
1. gSOAP 코드의 재단;