-ldc1394_control 에 관하여

-ldc1394_control 이놈을 설치하려고 하는데 잘 안되네요…

도움좀 청할려고 글을 올리게 되었습니다.

문제는 usb 카메라를 이용하여 예제 프로그램을 돌리려고 하는데요

이런 에러가 발생하네요;

root@dilab-desktop:/usr/src/libdc1394v1/grabdma# ls
LICENSE Makefile README conversions.cpp conversions.h grabcolor.cpp grabdma.cpp grabdma.o grabform7.cpp
root@dilab-desktop:/usr/src/libdc1394v1/grabdma# make
g++ -c -I. -Wall -g -DLINUX grabdma.cpp
grabdma.cpp:31:38: error: libdc1394/dc1394_control.h: No such file or directory
grabdma.cpp:71: error: ‘FORMAT_VGA_NONCOMPRESSED’ was not declared in this scope
grabdma.cpp:72: error: ‘MODE_640x480_MONO’ was not declared in this scope
grabdma.cpp:73: error: ‘FRAMERATE_30’ was not declared in this scope
grabdma.cpp:116: error: ‘dc1394_cameracapture’ does not name a type
grabdma.cpp: In function ‘void cleanup()’:
grabdma.cpp:136: error: ‘dc1394Camera’ was not declared in this scope
grabdma.cpp:136: error: ‘dc1394_dma_unlisten’ was not declared in this scope
grabdma.cpp:137: error: ‘dc1394_dma_release_camera’ was not declared in this scope
grabdma.cpp: In function ‘int main(int, char**)’:
grabdma.cpp:155: error: ‘dc1394_create_handle’ was not declared in this scope
grabdma.cpp:176: error: ‘dc1394_get_camera_nodes’ was not declared in this scope
grabdma.cpp:233: error: ‘dc1394_get_iso_channel_and_speed’ was not declared in this scope
grabdma.cpp:233: error: ‘DC1394_SUCCESS’ was not declared in this scope
grabdma.cpp:251: error: ‘SPEED_400’ was not declared in this scope
grabdma.cpp:256: error: ‘dc1394Camera’ was not declared in this scope
grabdma.cpp:256: error: ‘dc1394_dma_setup_capture’ was not declared in this scope
grabdma.cpp:257: error: ‘DC1394_SUCCESS’ was not declared in this scope
grabdma.cpp:274: error: ‘dc1394_start_iso_transmission’ was not declared in this scope
grabdma.cpp:275: error: ‘DC1394_SUCCESS’ was not declared in this scope
grabdma.cpp:290: error: ‘dc1394_dma_single_capture’ was not declared in this scope
grabdma.cpp:290: error: ‘DC1394_SUCCESS’ was not declared in this scope
grabdma.cpp:296: error: ‘dc1394_dma_done_with_buffer’ was not declared in this scope
grabdma.cpp:313: error: ‘dc1394_dma_single_capture’ was not declared in this scope
grabdma.cpp:313: error: ‘DC1394_SUCCESS’ was not declared in this scope
grabdma.cpp:356: error: ‘dc1394_dma_done_with_buffer’ was not declared in this scope
grabdma.cpp:361: error: ‘dc1394_stop_iso_transmission’ was not declared in this scope
grabdma.cpp:361: error: ‘DC1394_SUCCESS’ was not declared in this scope
make: *** [grabdma.o] 오류 1
root@dilab-desktop:/usr/src/libdc1394v1/grabdma#

예제가 있는 링크입니다.

http://www.ptgrey.com/support/kb/index. ... 7&ST=linux

지금 보니깐 -ldc1394_control 이놈이 설치가 안되서 make가 안된다고 하는거 같은데요

어제부터 찾고 했는데 잘 안찾아지네요…

시냅틱도 뒤져보고 소스포지에도 가보고 구글사이트도 엄청 뒤졌는데… ㅜㅜ

거기다가 이상한 에러까지 ㄷ ㄷ

도와주세요 ~

(방금또 이상한짓 하니 이에러는사라졌네요 --;:wink:
(예제파일을 지우고 다시 압축 풀어서 make해보니 저렇게 나오네요 -
-;; )

libdc1394 관련 패키지는 우분투가 지니고 있는데…
따로 컴파일 하려는 이유는?
apt-cache search libdc1394

[code:76wjz06c]libdc1394-13 - high level programming interface for IEEE1394 digital camera
libdc1394-13-dev - high level programming interface for IEEE1394 digital camera
libdc1394-22 - high level programming interface for IEEE1394 digital camera
libdc1394-22-dbg - debugging symbols for the libdc1394-22 library
libdc1394-22-dev - high level programming interface for IEEE1394 digital camera - development
libdc1394-22-doc - high level programming interface for IEEE1394 digital camera - documentation
libdc1394-examples - high level programming interface for IEEE1394 digital camera
libdc1394-utils - utilities for IEEE1394 digital cameras
[/code:76wjz06c]

아무튼 컴파일 에러는 대게… 라이브러리 미 설치가 주 원인 입니다.

[quote="knight0304":76wjz06c]
grabdma.cpp:31:38: error: libdc1394/dc1394_control.h: No such file or directory
[/quote:76wjz06c]libdc1394-22-dev, libraw1394-dev, libusb-dev와 같은 괸련 라이브러리 설치 바랍니다.
편히 컴파일 의존 패키지 설치는 역시 우분투/데비안 답게…
sudo apt-get build-dep libdc1394 로…

그래도 안되면 소스가 안 맞을수 있습니다. 이는 소스 수정이 필요한 신공이 요하고…

저 같은 경우는 컴파일 오류 나면 그 오류를 가지고 구글 검색 합니다.
누군가 같은 경우 처해 어찌 해결 하였는지 보는거죠…
키워드는 ‘1394 was not declared in this scope’ 정도가 되겠군요!

이건 작은 꼼수(?)인데…

무언가 라이브러리 등이 없어서 컴파일이 안될 경우, 오류 메시지에 나와 있는 라이브러리 명을 가지고 데비안 공식 사이트(http://www.debian.org/)로 가셔서 좌측 메뉴에 '데비안 패키지’라는 메뉴를 이용해서 검색하시면 데비안 패키지 명이 나옵니다. 데비안 패키지가 존재할 경우, 우분투에 거의 같은 이름으로 그 패키지가 존재할 가능성이 높습니다. 이를 이용하시면 필요한 라이브러리 설치가 좀 수월하더군요.; apt-get build-dep로 안될 경우를 말합니다.;

물론 우분투 홈페이지에서도 패키지 검색을 지원할 수도 있습니다만, 저는 아직 못 찾았네요. ㅡㅡ;;;; 아시는 분 좀 알려주세요.;;;;;

그냥… 지나가다가 예전에 제가 데비안에서 소스 컴파일 설치하려고 낑낑대던 기억이 나서…;;;

참고…되셨길… (꿈도 크다! :o)

일단 제가 libdc1394-22-dev 가 설치되어 있었는데 libdc1394/dc1394_control.h 파일이 libdc1394-13-dev에 설치되어 있다는 걸 데비안 홈피에서 찾아볼수 있었습니다. (pcandme 님 고맙습니다.)

그렇게 하니깐 위에 제글에 나오는 수많은 에러는 안잡혔는데 이렇게 다시 이상한 글들이…

root@dilab-desktop:/usr/src/libdc1394v1/grabdma# make
g++ -L. -o grabdma grabdma.o -ldc1394_control -lraw1394 -pthread
: not found: 1: /*
/usr/bin/ld: 2: LICENSE: not found
/usr/bin/ld: 3: Syntax error: "(" unexpected
collect2: ld returned 2 exit status
make: *** [grabdma] 오류 1
root@dilab-desktop:/usr/src/libdc1394v1/grabdma# ls
LICENSE Makefile README conversions.cpp conversions.h grabcolor.cpp grabdma.cpp grabdma.o grabform7.cpp
root@dilab-desktop:/usr/src/libdc1394v1/grabdma#

이렇게 다시 글이 올라오네요;;
이건 무슨말인지 …

분명 예제파일을 받아온거기때문에 소스코드 자체에는 문제될것이 없는거 같은데요…

자꾸 리눅스가 저를 테스트 해보는 느낌인거 같아서 좀 힘듭니다.(그만좀 애먹였으면 좋겠네요;:wink:

아… 갈수록 난감합니다 ㅜㅜ