XCode 에서의 C++ 라이브러리 사용법..

synthresin의 이미지

안녕하세요. 저는 디자인과 출신이고, 정식으로 프로그래밍을 배우지는 않은 사람입니다.. 그래서 그런지 컴파일러 쪽에 대한 지식이 거의 전무한지라,
이하의 문제를 어떻게 해결해 나가야 할지를 모르겠네요.

일단 제가 사용하고 싶어하는 라이브러리는 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 되지 않게 해야 되는것 같은데... 어떻게 접근해야되는지 모르겠습니다..

긴글 읽어주셔서 감사합니다..

File attachments: 
첨부파일 크기
Image icon 오류사진108.78 KB
익명 사용자의 이미지

일단 dylib 파일은 다이나믹 링킹용 library 파일로 알고있고요. 윈도우에서 dll파일과 비슷한 용도로 사용한다고 알고 있습니다.

근데 iOS같은경우는 다이나믹 링킹을 지원하지 않아서 dylib 파일을 사용하실 수 없습니다.

정 사용하시려면 static 링킹을 사용하셔야 해요.

댓글 달기

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