gSOAP 코드 자르기

780 단어
gSOAP에서 생성된 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로 바뀌었습니다. 많지 않습니다. 수동으로 바꾸면 됩니다.
잠시 생각한 것은 이것뿐입니다. 여러분들이 더 좋은 방법이 있다면 교류를 환영합니다.

좋은 웹페이지 즐겨찾기