XCode 에서의 C++ 라이브러리 사용법..
안녕하세요. 저는 디자인과 출신이고, 정식으로 프로그래밍을 배우지는 않은 사람입니다.. 그래서 그런지 컴파일러 쪽에 대한 지식이 거의 전무한지라,
이하의 문제를 어떻게 해결해 나가야 할지를 모르겠네요.
일단 제가 사용하고 싶어하는 라이브러리는 twitcurl 이라는 라이브러리입니다.
http://code.google.com/p/twitcurl/wiki/WikiHowToUseTwitcurlLibrary 에 나와있는 가이드를보고 진행을 하였는데요.
맥용 설명은 따로 없어서 UNIX/Linux 부분을 살펴서 진행했습니다.
먼저 svn 을 통하여, 라이브러리 소스코드를 받고, 해당 디렉토리로 진입하여 make 를 하였습니다.
하지만 이하의 오류가 나더군요.
ld: unknown option: --soname" "ld: unknown option: -rpath-link=/usr/lib"
이 문제는, 위의 링크에 코멘트 글타래를 통해
Makefile 파일에서,
LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
를 이하로,
LDFLAGS += -rpath=$(STAGING_DIR)/usr/lib
$(CC) -shared -Wl,-soname,lib$(LIBNAME).so.1 $(LDFLAGS) -o lib$(LIBNAME).so.1.0 .o -L$(LIBRARY_DIR) -lcurl
를 이하로,
$(CC) -dynamiclib -shared -Wl,-install_name,lib$(LIBNAME).dylib.1 $(LDFLAGS) -o lib$(LIBNAME).dylib .o -L$(LIBRARY_DIR) -lcurl
수정하였더니 순조롭게 .dylib 파일이 만들어지는듯 하였습니다. (하지만 이게 대저 무엇을 하는것인지도 굉장히 궁금합니다..)
이제 해당 .dylib 을 xcode 프로젝트에 추가였습니다. 라이브러리를 추가했더니 xcode 빌드 옵션에서, 라이브러리 서치 패스도 자동으로 추가가 되더라구요.
그 이후에 헤더파일이 몇가지 필요한듯 하여, 헤더 서치 패스 내부에 twitcurl.h 와 oauthlib.h 를 추가하였습니다.
(지금 제가 이해한바로는 라이브러리 파일과 헤더파일을 동시에 집어넣으면 된다. 이렇게 인식하고 있는데 이게 맞는지도 불확실하네요...)
어쨌든, 그리고 실행을 하였더니, 첨부 파일과 같은 에러가 나더군요.
제가 이해한 바로는 .dylib 파일이 무언가 문제가 되어 무시되었고, 이로 인해 헤더에 포함된 함수들이, 실제 implementation 을 찾지 못하는것 같거든요.
요는 결국 dylib 파일이, ignore 되지 않게 해야 되는것 같은데... 어떻게 접근해야되는지 모르겠습니다..
긴글 읽어주셔서 감사합니다..
첨부 | 파일 크기 |
---|---|
![]() | 108.78 KB |
혹시 iOS용 프로젝트 인가요?
일단 dylib 파일은 다이나믹 링킹용 library 파일로 알고있고요. 윈도우에서 dll파일과 비슷한 용도로 사용한다고 알고 있습니다.
근데 iOS같은경우는 다이나믹 링킹을 지원하지 않아서 dylib 파일을 사용하실 수 없습니다.
정 사용하시려면 static 링킹을 사용하셔야 해요.
댓글 달기