내 응용 프로그램에 gsoap을 추가하려고합니다. i386 용 gsoap을 구축했습니다. 아래 명령을 생성 된 C 코드 :mac에서 오류 gsoap을 (를) Mac에서 연결
wsdl2h -c -s -o soap.h soap.wsdl
soapcpp2 -c -C soap.h
나는 파일을 얻었다. 이 후 내 애플 리케이션에 이들을 포함하려고했습니다. xCode에서 프로젝트에 추가했습니다. 또한 6 개의 라이브러리 (libgsoap.a, libgsoap ++. a, libgsoapck.a, libgsoapck ++. a, libgsoapssl.a, libgsoapssl ++. a)를 추가했습니다. Target => Build phases => 라이브러리와 바이너리를 링크합니다. 하지만 내가 그것을했다 파일 soapClientLib.c에 발생할 일이 생각 오류 ....
ld: duplicate symbol .....
을 가지고 :
#ifndef WITH_NOGLOBAL
#define WITH_NOGLOBAL
#endif
#define SOAP_FMAC3 static
#include "soapC.c"
#include "soapClient.c"
댓글이 위해이었다 :
Use this file in your project build instead of the two files soapC.c and soapClient.c. This hides the serializer functions and avoids linking problems when linking multiple clients and servers
내가 제거 그것 내용. 하지만이 후 나는 다음 오류가 발생했습니다 ...
Undefined symbols for architecture i386:
"_namespaces", referenced from:
_soap_init_LIBRARY_VERSION_REQUIRED_20812 in libgsoap.a(libgsoap_a-stdsoap2.o)
(maybe you meant: _soap_set_namespaces, _soap_set_local_namespaces)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
그리고 지금은 아무 생각이 ... 나는 창에서 gsoap을 사용하고 내가 5 분 내 프로젝트에 추가. 하지만 맥 오에스에 추가하는 데 많은 시간을 낭비했다. 도와 주시겠습니까?
나는 쓰지 않았다. 그것은 gsoap에 의해 생성되었습니다. 나는 그것을 제거했다. 하지만 지금은 다른 오류가 발생했습니다 –
그 다음 생성 된 것이면 제거하지 말아야합니다. ** 모든 ** 라이브러리와 링크해야합니까? 나는 직장에서 gsoap을 사용한다. (그래서 나는 그것이 얼마나 쓰레기인지 알고있다.) 나는 우리가 그 라이브러리들 모두와 연결하지 않을 것이라고 확신한다 ... – trojanfoe
나는 gsoap과 비슷한 문제가있다. gcc를 사용하여 컴파일하려고하지만 링커 오류가 발생했습니다 "아키텍처 x86_64에 대한 정의되지 않은 기호 :"명령 사용 : gcc -o tdc_send_sms tdc_send_sms.c -L/usr/local/lib/-lgsoap –