xlC_r 컴파일에러입니다.
안녕하세요? 유닉스 초보 프로그래머입니다^^;
제가 어렵게 xml4c parser를 받아서 설치를했습니다.
1. xml4c 헤더파일들을 /usr/include 로 복사를 했습니다.
2. xml4c lib 경로를 .profile의 LIBPATH에 추가를 했습니다.
3. 우선 컴파일 테스트를 해보기위해 소스코드를 다음과 같이 작성했습니다.
#include <xercesc/dom/DOM.hpp> //#include <xercesc/sax/HandlerBase.hpp> //#include <xercesc/util/XMLString.hpp> //#include <xercesc/util/PlatformUtils.hpp> #include <stdio.h> #include <iostream.h> XERCES_CPP_NAMESPACE_USE int main(int argc, char* args[]) { DOMDocument* pDOMDoc; //DOMNode* pNode; //DOMText* pText; cout << "hi"; return 0; }
4.그리고 다음과 같이 컴파일을 실행하였습니다.
[/home/airman/src]xlC_r -L/home/airman/xml4c/lib -lxml4c52 xml.C
그랬더니 다음과 같이 에러가 나는데요.. 흠.. 뭔소린지.. 대충 힌트라도 주세요..
"/usr/include/xercesc/util/XMLEnumerator.hpp", line 95.30: 1540-0121 (S) A templ
ate cannot have "C" linkage.
"/usr/include/xercesc/util/BaseRefVectorOf.hpp", line 71.30: 1540-0121 (S) A tem
plate cannot have "C" linkage.
"/usr/include/xercesc/util/BaseRefVectorOf.hpp", line 126.30: 1540-0121 (S) A te
mplate cannot have "C" linkage.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 68.39: 1540-0140 (S) The tex
t "<" is unexpected. "BaseRefVectorOf" may be undeclared, ambiguous or may requ
ire "typename" qualification.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 85.39: 1540-0140 (S) The tex
t "<" is unexpected. "BaseRefVectorOf" may be undeclared, ambiguous or may requ
ire "typename" qualification.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 93.44: 1540-0063 (S) The tex
t "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 102.16: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 112.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 135.46: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 165.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 178.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 206.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 217.21: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 233.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 248.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 264.52: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 269.52: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 278.16: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 285.52: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 294.44: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 327.47: 1540-0140 (S) The te
xt "<" is unexpected. "BaseRefVectorEnumerator" may be undeclared, ambiguous or
may require "typename" qualification.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 336.47: 1540-0140 (S) The te
xt "<" is unexpected. "BaseRefVectorEnumerator" may be undeclared, ambiguous or
may require "typename" qualification.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 346.52: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 353.54: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/BaseRefVectorOf.c", line 358.52: 1540-0063 (S) The te
xt "<" is unexpected.
"/usr/include/xercesc/util/XMLString.hpp", line 1299.27: 1540-0040 (S) The text
"<" is unexpected. "BaseRefVectorOf" may be undeclared or ambiguous.
봐주셔서 감사하구요.. 그리고 AIX에서 xlc xlc_r xlC xlC_r 의 차이가 뭔가요?
살펴봤더니 xlC는 xlc의 링크파일이더라구요.. 그리고 _r 이 붙은건 무슨차이예요?
읽어주셔서 감사합니다.
정확한것인지는 사용해보지 않아서 모르겠습니다만.에러메세지들에서 나
정확한것인지는 사용해보지 않아서 모르겠습니다만.
에러메세지들에서 나오는 말로 봐서는.
사용하시려고 하시는 xml4c는 c++로 작성되어 있는 것이고.
그 라이브러리(?)는 c 는 지원하지 않는다.
소스는 C 같은데, xml4c에 같이 딸려온 문서를 확인해 보시는게 좋겠군요.
보통 function & function_r 이 있는 경우에는 function_r은 function과
같은 동작을 하지만, thread safe 하게 구현된 경우로 기억합니다.
@ 아마도, 같이 오는 문서파일이나 예제파일을 살펴보시면 충분한 답이 있을 것 같습니다.
@ IBM xml4c : http://www.alphaworks.ibm.com/tech/xml4c
댓글 달기