2013-06-19 3 views
1

Matrix Vision에서 판매하는 USB 카메라 (mvBlueFOX)에 대한 예제 응용 프로그램을 컴파일하려고합니다. 그들은 응용 프로그램의 소스 코드, make 파일 및 미리 컴파일 된 공유 라이브러리 세트를 제공합니다. 그러나 make 파일은 실행 파일을 성공적으로 빌드하지 못합니다. A "확인"이 반환g ++는 -ldl 플래그로도 libdl에 연결할 수 없습니다.

[email protected]:~/mvimpact_acquire-x86-1.12.22.254/apps/LiveSnap$ make 
make[1]: Entering directory `/home/carter/mvimpact_acquire-x86-1.12.22.254/apps/LiveSnap/x86' 
/usr/bin/g++  -O2 -Wall -W -fPIC -D_REENTRANT -D_GNU_SOURCE -D_MAJOR_VERSION=1 -D_MINOR_VERSION=12 -D_BUILD_VERSION=22 -D_BUILD2_VERSION=254 -DMALLOC_TRACE -DNDEBUG  -I../../.. -o LiveSnap LiveSnap.o  -L../../../lib/x86 -lmvDeviceManager -lmvPropHandling -lm -lpthread -ldl 
../../../lib/x86/libmvPropHandling.so: undefined reference to `dlsym' 
../../../lib/x86/libmvPropHandling.so: undefined reference to `dlopen' 
../../../lib/x86/libmvPropHandling.so: undefined reference to `dlclose' 
collect2: ld returned 1 exit status 
make[1]: *** [LiveSnap] Error 1 
make[1]: Leaving directory `/home/carter/mvimpact_acquire-x86-1.12.22.254/apps/LiveSnap/x86' 
make: *** [all] Error 2 

링크 명령의 단순화 된 버전 :

g++ -o LiveSnap x86/LiveSnap.o -lmvDeviceManager -ldl 

아직도 반환

../../../lib/x86/libmvPropHandling.so: undefined reference to `dlsym' 
../../../lib/x86/libmvPropHandling.so: undefined reference to `dlopen' 
../../../lib/x86/libmvPropHandling.so: undefined reference to `dlclose' 

libdl.so가 발견되고, 그러나 프로세스가 계속 실패 . 이것은 libdl의 버전에 문제가 있습니까? 아니면 다른 문제가 있습니까?

답변

0

이 문제를 해결하려는 사람들은 Movie-Matrix 웹 사이트에서 다운로드 한 코드의 최신 버전을 성공적으로 빌드하고 실행할 수있었습니다. 내 카메라로 CD에 제공된 버전은 1.2.22이고 웹 사이트 버전은 2.5.2입니다. 이전 버전을 빌드하는 데 실패한 이유는 여전히 알려져 있지 않지만 새 버전의 소프트웨어에서는 문제가 해결 된 것 같습니다.

0

gcc 버전이 4.6.2 이상인 경우 -lmvDeviceManager 앞에 -Wl, - no-as-needed '를 추가하십시오.

관련 문제