• [ETC] 아우.. 비주얼 스튜디오2015.02.02 PM 04:36

게시물 주소 FONT글자 작게하기 글자 키우기

사진에서 메타데이타를 뽑아서 셔터 스피드 ISO F-stop 등등을 일일이 키보드로 타이핑 해야 될일이 있는데
사진이 몇십장이 넘어가니까 너무 귀찮아지더군요,
그게 귀찮아서 사진에서 메타데이타 뽑아서 텍스트 파로 옮겨 놓는 프로그램 코딩시작

libraw 라는 오픈소스 라이브러리를 이용했는데
리눅스에서는 대부분의 라이브러리를 팩키지 매니저에서 한큐에 설치 가능
라이브러리 설치하고 코딩 반나절에 걸쳐 끝내고 이클립스 IDE에서 라이브러리 링크해주고
컴파일후 잘 돌아가는거 확인.

그런데 밖에서는 리눅스를 쓰는 컴퓨터들을 찾아보기가 힘들다보니
밖에서도 써먹으려면 현재 프로그램을 윈도우로 포팅해야 될듯해서 윈도우
비주얼 스튜디오 2013 열고 libraw 라이브러리 로딩..

libraw 윈도우 용은 비주얼 스튜디오 2010 용으로 컴파일 되었다기에
그 이후 버젼인 2013에서도 잘 돌아갈줄 알았는데
2013에서 libraw 솔류션을 여니 쏟아져 나오는 각종 에러 메세지..

반나절 매달리다가 도저히 안되겠다 싶어서
리눅스로 돌아가서 Mingw 를 이용해 윈도우 용으로 크로스 컴파일을 시도했으나
Mingw에서 윈도우용 라이브러리 로딩하는 법을 도저히 못찾아서 헤매다가

libraw 개발자가 윈도우용은 MSVC 2010으로 컴파일 했다기에
라이브러리 링크를 위해 그냥 비주얼 스튜디오 2010 버젼 설치...
하지만 설치후에도 라이브러리 쓰는데 뭔 설정을 이리도 많이 이곳저곳
손봐줘야 하는건지.. 골머리를 썩히다가 이제서야 겨우 컴파일 하고 프로그램 돌아가는거 확인.

이건 내가 리눅스 환경에 익숙해서 그런게 아니라 MS 비주얼 스튜디오 IDE
자체가 참 쓰기에 난해한거 같습니다. 동적, 정적 라이브러리 이용 방법도 번거롭고
C/C++의 경우는 쓰다보면 표준이 아닌게 튀어 나오기도 하며
이번처럼 비주얼 스튜디오 파일들은 버젼이 다르면
호환이 안되는 경우까지 있으니..

사실 윈도우에서는 저런식으로 번거로운 경우가 많아서 윈도우에서는 되도록이면
코딩을 안하는 편인데 워낙 윈도우 보급률이 압도적이니 윈도우 개발 플렛폼도 무시할수
없다는점이 아쉽군요. -,.-
댓글 : 14 개
저는 반대로.. 윈도우로만 개발하는데... 오픈 라이브러리가 거의 리눅스용이라 힘들지요 ㅠㅠ

머... 비슷한 문제인가요? ㅋㅋ

덕분에... 필요한거는 그냥 제작해서 쓰고 있습니다 ㅠㅠ
우와.. 전 웬만해선 라이브러리 있는걸 이용하는데.. 전 라이브러리가 해당 OS에 없으면, 직접 만드느니
그냥 해당 라이브러리가 사용 가능한 OS로 옮겨와서 만드는 쪽을 택합니다 . 사실 직접 만들 능력도 없구요. 하하.
마소의 생태계는 마소 제품을 사서 쓸때만 빛이 납니다.
흐..
libraw 를 따로 컴파일 할 필요 없이 dll 로 이미 컴파일 된걸 제공하고 있는데 ㅡㅡ;;
왜 컴파일을 따로 하시려구 하시나요ㅎㅎ
저도 그렇게 dll을 직접적으로 링크해서 써볼려고 시도를 해봤지요, libraw 개발자의 윈도우용 비쥬얼 스튜디오 솔류션 디렉토리 안에는 lib과 dll이 이미 들어 있습니다. 하지만 인터넷에서 각종 정보를 찾아봐도 솔류션을 열지 않고 dll을 직접 링크하는 법은 못찾았고, 유일하게 찾은 MS 홈페이지에서 나온 설명대로의 방법이 비주얼 스튜디오를 이용해 솔류션을 만들어서 직접 컴파일 하는 방법 이더군요.. libraw 같은 라이브러리를 dll만으로 직접 링크하는 방법 나와 있는 사이트 있으면 정보 부탁드립니다 이기회에 좀 배워보게요.
만드신 프로그램의 프로젝트 설정에 라이브러리 연결 관련 설정하는 메뉴가 있구요,
아니면 #pragma 로 소스에 직접 설정할 수 있습니다.
DLL 만 달랑 있어도 api를 이용해서 로딩할 수도 있는데, lib 이 있으면 간편하게 연결 시킬수 있죠ㅎㅎ
그 방법도 다 써봤습니다만 물론 간단한 기본예제에서는 링크가 되었습니다만. libraw는 그게 안되더라구요.
안되는 에러가 뭔가요?
lib 링크가 안되는 경우는 단 한번도 못봤는데 신기하네요
이미 컴파일되어 있는 dll과 lib으로 링크를 걸면 이상하게도 인식을 못하더군요. T_T
dll 은 원래 api 로 동적 로딩을 하라고 만든 것이라서, 프로젝트에서 로딩하려면 다른 처리를 해야 하구요.
lib 는 링크 안되는 에러를 알면 간단히 해결할 수 있을거 같은데..
libraw_static.lib 로 넣으면 간단히 될거 같은데 말이죵.
아 답변 감사합니다 libraw_static.lib은 시도를 안해봤는데 해봐야 겠네요.
오우.. 해결 됐습니다. 스태틱 라이브러리 쓰면서 linker->--nput->additional Dependencies 에 라이브리리 전부 추가해주고 configure Properties 에서 use of MFC옵션을 Use MFC in a Static Library 로 바꿔주니까 컴파일이 되는군요. 그런데 건드려야 되는 설정이 너무 자질구레한게 많아서 영 마음에 안드는군요.. 으으.. 이걸 몰라서 반나절을 넘게 소비하다가 2010 버젼까지 인스톨 한걸 생각하면... --+ 어쨌든 답변 감사드립니다. ^^
그냥 VS에서 라이브러리 사용법을 모르시는거 같은데..
친구글 비밀글 댓글 쓰기

user error : Error. B.