linux 에서 opencv static library 링크 어떻게 해서 컴파일하나요?

oblab의 이미지

opencv를 이용해서 영상을 받고 있는데요 static library 를 이용하여 진행을 하려고 하는데 에러가 나네요

우선 shared library를 이용하여 컴파일 및 라이브영상 출력까지 진행 했습니다

CFLAGS = -lopencv_core -lopencv_highgui -lopencv_imgproc
$(CC) -o opencv_webcam opencv_webcam.c $(CFLAGS)

위에 처럼 Makefile을 만들어서 shared library를 이용하여 동작확인 까지 했습니다.

opencv 도 컴파일옵션에서 -DBUILD_SHARED_LIBS=OFF 사용하여 static library를 만들었는데요

libopencv_core.a libopencv_highgui.a libopencv_imgproc.a 파일을 소스파일경로로 복사를 했습니다.

여기서 Makefile을 어떻게 설정해야 할지 답이 안나오는데요

인터넷에서는 gcc -o opencv_webcam opencv_webcam.c `pkg-config --static --cflags --libs opencv` 이렇게 하라고하는데
컴파일해서 테스트를 해보니 실행파일에서 opencv 라이브러리를 필요로 하더라구요..
-static 옵션을 주어서
$(CC) -o opencv_webcam opencv_webcam.c -static $(CFLAGS) 컴파일 하면
....
utils.cpp:(.text._ZN2cv4PSNRERKNS_11_InputArrayES2_+0x5c1): undefined reference to `cv::Exception::~Exception()'
//usr/local/lib/libopencv_imgproc.a(utils.cpp.o): In function `cvCopyMakeBorder':
utils.cpp:(.text.cvCopyMakeBorder+0x41): undefined reference to `cv::cvarrToMat(void const*, bool, bool, int)'
utils.cpp:(.text.cvCopyMakeBorder+0x56): undefined reference to `cv::cvarrToMat(void const*, bool, bool, int)'
utils.cpp:(.text.cvCopyMakeBorder+0x12d): undefined reference to `cv::Exception::Exception(int, std::string const&, std::string const&, std::string const&, int)'
utils.cpp:(.text.cvCopyMakeBorder+0x135): undefined reference to `cv::error(cv::Exception const&)'
utils.cpp:(.text.cvCopyMakeBorder+0x13d): undefined reference to `cv::Exception::~Exception()'
utils.cpp:(.text.cvCopyMakeBorder+0x1be): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
utils.cpp:(.text.cvCopyMakeBorder+0x1ce): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
utils.cpp:(.text.cvCopyMakeBorder+0x294): undefined reference to `cv::fastFree(void*)'
utils.cpp:(.text.cvCopyMakeBorder+0x32c): undefined reference to `cv::fastFree(void*)'
utils.cpp:(.text.cvCopyMakeBorder+0x34c): undefined reference to `cv::Mat::deallocate()'
utils.cpp:(.text.cvCopyMakeBorder+0x35c): undefined reference to `cv::Mat::deallocate()'

엄청난 에러가 나오는데요

linux(우분투)환경에서 opencv static library 링크 설정을 어떻게 해야하나요?

shint의 이미지

도움이 되는 내용이 있다면... 되도록 잘 되어 있는 예제를 찾아서 사용하시기를 권장합니다.

- opencv 컴파일'로 네이버와 구글을 찾아봅니다.

- undefined reference to `cv::Exception::~Exception()''로 네이버와 구글에서 찾아봅니다.

- 네이버 책에서 OpenCV 관련 책을 찾아봅니다.

- 컴파일 되어 있는 예제를 네이버. 구글. 코드프로젝트. GitHub 등에서 구해봅니다.

- OpenCV 버전. OS. 컴파일러. 그래픽 카드 드라이버 등에 영향을 확인해봅니다.

- 리눅스라면. 자동 인스톨 방법을 확인해봅니다.

- static 컴파일을 할경우에 대한 라이센스'도 확인해봅니다. (Qt 는 static 컴파일을 할 경우. 500만원에 상용 비용을 지불해야 합니다.)

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

익명 사용자의 이미지

- static 컴파일을 할경우에 대한 라이센스'도 확인해봅니다. (Qt 는 static 컴파일을 할 경우. 500만원에 상용 비용을 지불해야 합니다.)

잘못된 정보를 전파하지 마십시오.

twinwings의 이미지

중복댓글 삭제

twinwings의 이미지

http://stackoverflow.com/questions/2277165/qt-single-exe-with-lgp

http://www.korone.net/bbs/board.php?bo_table=qt_qna&wr_id=10982&sfl=wr_subject&stx=qt&sst=wr_good&sod=asc&sop=and&page=5

stand alone + closed source 일 경우 라이센스 비용 들고

최소 480부터 시작하는게 맞는 것 같습니다.

어디가 틀렸는지 명확히 따지고 비난해야 할 것 같습니다만?

익명 사용자의 이미지

그정도 가이드는 누구나할듯

twinwings의 이미지

이런 무의미한 익명의 댓글도 누구나 달 수 있죠.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.