2013-06-12 2 views
0

저는 autotools 초보자입니다. xerces-c 3.1을 사용하여 xml 파일을 구문 분석해야하는 응용 프로그램을 만들고 있습니다.autotools에 라이브러리 포함 및 사용

apt-get 유틸리티 (xerces-c 라이브러리 및 포함 파일은 각각/usr/lib 및/usr/include/xercesc에 각각 설치되어 있음)를 사용하여 xerces-c 라이브러리를 설치하면 내 코드가 잘 작동합니다. 내 configure.ac 파일에서 다음과 같은 매크로가 있습니다 :

OK, 제가 말했듯이 이것은 예상대로 작동합니다. 그러나 프로젝트 디렉토리 안에 배포 패키지에 포함될 라이브러리를 갖고 싶습니다. 여기에 문제가 생깁니다.

xerces-c 라이브러리를 제거하고 xerces-c 라이브러리 (xerces-c 웹 페이지에서 다운로드)를 프로젝트 디렉토리에 복사합니다.

LDFLAGS="$LDFLAGS -L/home/xxxx/workspace/P3/src/lib" 

마지막으로, 난 그냥 프로젝트의 루트 디렉토리에서 다음 명령을 실행 메이크 파일을 생성하고 컴파일 : 그럼, 내 confgure.ac에 매크로를 추가

  • 의 autoconf를
  • ./configure를
  • automake가 만들어

컴파일 좋아 보인다, 그리고 연결도 잘 보이는 :

g++ -g -O2 -L/home/xxxx/workspace/P3/src/lib -o app app-P3.o -lxerces-c 

을하지만 내가 같은 오류가있어 응용 프로그램을 실행할 때 : 내가 잘못

./src/app: error while loading shared libraries: libxerces-c-3.1.so: cannot open shared object file: No such file or directory 

을하고있어 무엇을?
미리 감사드립니다.

+0

"프로젝트 디렉토리 안에 라이브러리를 갖고 싶습니다. 여기 내 문제가 시작됩니다." 사실, 이것이 많은 문제의 시작입니다. 해결책은 그렇게하지 않는 것입니다! autotools를 패키지 관리 시스템으로 취급하지 마십시오. 이는 해당 기능이 아닙니다. –

답변

0

libxerces-c-3.1.so은 (는) ld에서 찾을 수있는 곳에 있어야합니다. 이전의 경우 xerces-c 패키지를 설치 한 경우 libxerces는 /usr/lib 또는 찾을 수있는 어딘가에 설치되었습니다.

LD_LIBRARY_PATH=$PATH:/home/xxxx/workspace/P3/src/lib ./src/app 

하지만 이것은 결국 패키지 설치를 위해 알아야 할 사항입니다.

+0

고마워요, 그게 전부입니다. – Gorka

관련 문제