2011-02-06 3 views
0

다음과 같은 문제가 있습니다 :정의되지 않은 참조

저는 64 비트 우분투에서 32 비트 버전의 Qt를 사용합니다. 내 프로젝트에서 Nokia N900 휴대 전화 카메라 용 프로그램을 만들기 위해 FCam 라이브러리를 포함하고 싶습니다. 내 프로젝트 파일의 라이브러리에 대한 경로를 포함하면 Qt는 그것을 발견하지 않는 것 또는 내가 다음과 같은 오류 메시지가 얻을 수 있기 때문에 단지 그것을 사용하지 않습니다 : 내 libs와 라인은 다음과 같다

undefined reference to "FCam::Image::Image(FCam::Image const&)" 

를 :

LIBS += -lpthread -ljpeg -Llib -L/home/username/FCam 

내가 작동하는 다른 예제 프로젝트가 있기 때문에 이것이 작동하지 않는 이유는 알 수 없습니다. 나는 또한 라인의 몇 가지 변형을 시도했지만 헛된. 귀하의 답변

감사합니다, Tsveti -L/홈/사용자 이름/FCam와

답변

1

당신은에 연결해야 라이브러리에 대해 을 찾을 때 그 디렉토리에보고 링커를 말하고있다. 또한은 어떤 라이브러리를 다시 링크 할 지 알려줄 필요가 있습니다 (즉, -l로 끝납니다). lib를 모르지만 --lfcam 또는 이와 비슷한 것을 추가해야합니다.

LIBS += -L/home/username/FCam -lFCam -lpthread -ljpeg 

왜 이런 순서 : 나는이 기대 얻은 몇 가지 정보에서 -

+0

그래, 나도 이것을 시도했다, 그러나 나는 즉시 작동하지 않습니다 컴파일러에서 -lFCam을 찾지 못했습니다. -lFCam을 찾을 수 없습니다. – Tsveti

1

당신이 당신의 libs와 문장의 올바른 순서를 혼합 보인다?

먼저 lib가 어디에 있는지를 정의해야하기 때문에 -L [MY_LIB_DIR].

다음은 라이브러리 파일을 libMyLib.a 또는 libMyLib.so로 명명해야하는 -lMyLib 별 라이브러리를 추가해야합니다.

마지막으로 시스템 libs를 추가합니다. 앱 또는 라이브러리가 시스템 libs lik pthread 및 jpeg에 종속 될 가능성이 있기 때문입니다.

그냥 새로운 질서를 시도하고 당신이 그것을 얻을 거라고 확신)

챠오, 크리스