jpeg관련 질문입니다~~~~고수님들 도와주세요 ㅜ

jhyr의 이미지

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define Width 240
#define Height 320
#define SIZE 76800
#define CH_SZ 256

void usrsignal(int);
int jpeg_capture(char *);

pid_t id;
static int dev;
unsigned short RGB[SIZE];
unsigned int *pSRAM;

struct jpeg_compress_struct cinfo;
struct jpeg_error_mgr jerr;
static long cnt;
char buf[CH_SZ];
char path[CH_SZ] = {'\0'};
char *str1 = "/web/mjpg/img";
char *str2 = ".jpg";

int main(void){
dev= open("/dev/camera",O_RDWR);

if(dev < 0){
printf("application : camera driver open fails!\n");
return -1;
}

(void)signal(SIGUSR2,usrsignal);

id = getpid();
write(dev, &id, 4);

usleep(85000);
close(dev);
return 0;
}

void usrsignal(int isg){
read(dev,RGB, SIZE * 2);

strcat(path, str1);
sprintf(buf, "%id", cnt++);
strcat(path, buf);
strcat(path, str2);

if(cnt == 50) cnt = 0;

jpeg_capture(path);
}

int jpeg_capture(char *filename){
FILE *imgout;
int i,j,n,cnt,row_stride;
JSAMPROW row_pointer[1];
unsigned char image_buffer[SIZE * 3];

if(!(imgout = fopen(filename, "wb"))){
fprintf(stderr, "File Open Error\n");
exit(1);
}

n = cnt = 0;

for(i = 0 ; i < Height ; i++){
for(j = Width ; j > 0 ; j--){
image_buffer[n++] = (((RGB[cnt] & 0xf800) >> 11) << 3);
image_buffer[n++] = (((RGB[cnt] & 0x07e0) >> 15) << 2);
image_buffer[n++] = (((RGB[cnt] & 0x001f) << 3));
}
}
cinfo.err = jpeg_std_error(&jerr);

jpeg_creat_compress(&cinfo);
jpeg_stdio_dest(&cinfo, imgout);

cinfo.image_width = Width;
cinfo.image_height = Height;
cinfo.input_components = 3;
cinfo.in_color_space = JCS_RGB;
jpeg_set_default(&cinfo);

jpeg_start_compress(&cinfo, TRUE);

row_stride = cinfo.image_width * 3;

while(cinfo.next_scanline < cinfo.image_height){
row_pointer[0] = &image_buffer[cinfo.next_scanline * row_stride];
jpeg_write_scanline(&cinfo, row_pointer, 1);
}

jpeg_finish_compress(&cinfo);
jpeg_destroy_compress(&cinfo);

bzero(path, CH_SZ);
fclose(imgout);

id = getpid();
write(dev,&id,4);

usleep(85000);
return 0;
}
==========================================================================================
==========================================================================================
==========================================================================================
이 소스를 컴파일 했는데 아래와 같은 오류가 나요~~
jpeg라이브러리도 설치를 했는데 이럴경우엔 어떻게 해야하나요 ㅜ
고수님들 해결방법좀 알려주세요~~
참고로 지금 환경은 레드햇9.0이고 타겟보드는 한백전자의 sm보드입니다~
qt카메라를 이용해 영상을 jpeg파일로 저장할려고 시도중인데 너무 힘드네요 ㅜ
디바이스 드라이버파일도 있는데 디바이스 드라이버 파일도 컴파일이 수많은 오류가 납니다ㅜ
파일을 첨부했으니 고수님들이 좀 보시고 도와주세요 ㅜ

/tmp/ccTmRxo8.o: In function `jpeg_capture':
/tmp/ccTmRxo8.o(.text+0x348): undefined reference to `jpeg_std_error'
/tmp/ccTmRxo8.o(.text+0x35c): undefined reference to `jpeg_creat_compress'
/tmp/ccTmRxo8.o(.text+0x368): undefined reference to `jpeg_stdio_dest'
/tmp/ccTmRxo8.o(.text+0x3a0): undefined reference to `jpeg_set_default'
/tmp/ccTmRxo8.o(.text+0x3ac): undefined reference to `jpeg_start_compress'
/tmp/ccTmRxo8.o(.text+0x418): undefined reference to `jpeg_write_scanline'
/tmp/ccTmRxo8.o(.text+0x424): undefined reference to `jpeg_finish_compress'
/tmp/ccTmRxo8.o(.text+0x42c): undefined reference to `jpeg_destroy_compress'

File attachments: 
첨부파일 크기
Binary Data qtcamera_sm.tar.gz15.43 KB
파일 shared.tar8 KB
정태영의 이미지

링크할 때 -ljpeg 옵션을 주세요. 추가로 libjpeg.so 가 있는 디렉토리 경로를 -L경로 식으로 붙여주시고

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

jhyr의 이미지

지금 현재 /root 디렉토리 안에 소스가 있고 알려주신대로 이렇게 명령어를 실행했습니다.

arm-linux-gcc -ljpeg -L /usr/local/cross-tools/lib -o run cmos_app.c

그랬더니

/usr/local/cross-tools/lib/libjpeg.so: could not read
symbols: Invalid operation

이렇게 메세지가 나오는데요 분명 이 디렉토리 안에 libjpeg.so 파일이 있는데

어떻게 해야되나요..?

dosuser의 이미지

혹시 libjpeg.so 라이브러리는 arm용으로 컴파일 된건가요?

에러메시지로 구글링 했더니
http://www.graphviz.org/bugs/b836.html
http://www.korone.net/bbs/board.php?bo_table=qt_qna&wr_id=11192&page=98
등에 비슷한 문제가 있네요.

링크과정을 면밀히 살펴보시고 정말 원하는 라이브러리가 링크되는지 살펴보시면 어떨까요?

프로그래머 다운 프로그래머가 되고 싶습니다. 많은 지도 편달 부탁드립니다^^

프로그래머 다운 프로그래머가 되고 싶습니다. 많은 지도 편달 부탁드립니다^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.