2012-12-31 2 views
0

이제 웹 서비스를 호출하는 프로그램을 작성 중입니다. 나는 testMain.c라고 쓴다. 나머지는 wsdl2hsoapcpp2에 의해 생성됩니다.gsoap 클라이언트 컴파일/링크 오류

내 컴파일 명령은 다음과 같다 :

gcc -Wall -g -c -L. soapC.c soapClient.c stdsoap2.c testMain.c 
gcc -o testMain -L/usr/lib -lgsoap -lgsoapck -lgsoapssl soapC.o soapClient.o stdsoap2.o testMain.o 

그리고 나는 이러한 오류를 얻을. 도와주세요. GCC/LD /는 GNU 툴체인의

stdsoap2.o: In function `soap_print_fault': 
/test/stdsoap2.c:16279: undefined reference to `soap_check_faultsubcode' 
/test/stdsoap2.c:16281: undefined reference to `soap_check_faultdetail' 
stdsoap2.o: In function `soap_sprint_fault': 
/test/stdsoap2.c:16341: undefined reference to `soap_check_faultdetail' 
collect2: ld returned 1 exit status 

답변

1

최신 버전의 심볼이 서로에 따라 같은 순서로 링커 찾을 수 있도록 오브젝트 및 라이브러리 파일이 특정 순서로 지정해야합니다. 즉, 라이브러리는 명령 행의 끝으로 가야합니다. 두 번째 줄 (연결할 때)은

이어야합니다.

+0

나는 당신의 명령을 사용하지만 여전히 오류가 발생합니다. 'soap_check_fault *'함수를 제공 할 수있는 파일이없는 것 같습니다. –

+0

@ccsnailpp 또한 객체 파일의 순서로 재생 해보십시오. –

+0

여전히 작동하지 않습니다. –

0

당신은 이미 GCC 링커 옵션 -lgsoap)을 통해 주어진 libgsoap (에 포함되어 있기 때문에 프로젝트에 stdsoap2.o을 연결할 필요가 없습니다 프로젝트에서 stdsoap2.c을 제외하려고 gSOAP FAQ에서 :.. 내가 할

gcc/g ++ (GNU GCC)와의 링크 오류 C apps의 경우 soapcpp2 옵션 -c를 사용하여 C 코드를 생성하고 패키지의 .c 파일 만 사용하고 libgsoap.a (-lgsoap) 또는 the lib의 소스 stdsoap2.c를 사용하십시오. (해당되는 경우 dom.c).