• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

팁사용기

[팁] [질문] XCODE에서 외부 라이브러리 가져다 쓸 때..

본문

안녕하세요.
두 가지 질문을 하려고 합니다.

최근에 OpenGL 프로그래밍을 하고 있습니다.
쉐이더를 쓰려면 필요하다는 GLEW  라이브러리를 AGL 로 빌드된 것을 다운 받아

헤더는 /usr/local/include/glew_1.3.5/ 에
라이브러리는 /uvr/local/lib/ 폴더에 넣어주었습니다.

main.cpp 에서

#include <glew.h> 로 include 해주니 아래와 같은 에러가 났습니다.
main.cpp:3: error: /usr/local/include/glew_1.3.5/glew.h: Permission denied

권한이 없다는 얘기 같습니다. 전 어드민 계정으로 로그인 하는데 이런 문제가 생기네요.

두번째로 GLEW 관련 헤더를 그냥 프로젝트 로컬 폴더에 넣고 빌드하면 에러는 없는데
실행하는 경우 log 창에 다음과 같은 메세지가 나오면서 실행이 안됩니다.

[Session started at 2006-12-22 15:06:52 +0900.]
ZeroLink: unknown symbol '_glewInit'
OSXGLUT has exited due to signal 6 (SIGABRT).

라이브러리 링크가 안된 모양입니다.
GLEW의 라이브러리 파일인  libGLEW.1.3.5.dylib 를 사용하도록 해줘야 할 것 같은데
XCODE에서 어떻게 설정해 주어야 할지 모르겠습니다.

요약하면, 다음과 같습니다.
1. 헤더 파일을 /usr/local/include/??? 폴더에 넣었는데 include 하는데 권한에러
2. 라이브러리 링크를 시켜야 하는데 '어떤 라이브러리 파일을 가져다 사용해라'
라는 설정을 어떻게 설정하는지
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 2,716
가입일 :
2003-08-29 12:43:14
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 3

영환군님의 댓글

usr/local 경로라면..
administrator 보다 높은 super user (root)의 권한이 필요한 것이 아닐까요?

터미널에서 해당 경로의 권한을 확인해보시고
chmod 커맨드로 권한을 재지정해보심이 어떨런지..

링크 부분에서 심볼릭 링크를 말씀하시는 것인지.. 이 부분은 제가 이해부족이라..

아마 무적의 hongjuny님께서 나타나셔서 후떡 해결해주실 겁니다.
:D

hongjuny님의 댓글

일단, Xcode 로 컴파일을 하시는 경우에는 일부러 헤더와 라이브러리를 /usr/include 혹은 /usr/local/include 등으로 넣으실 필요가 없습니다. 적당한 디렉토리에 놓으신 다음 Xcode 에서 프로젝트 이름을 선택하신 후 Command + I 를 누르셔서 두 번째 탭인 Build 를 선택하시고 Header Search Paths 와 Library Search Paths 를 지정해 주시면 편리하게 이용하실 수 있습니다. /usr/local 도 별 문제는 없을 것 같은데... 이유는 저도 잘 모르겠군요. 어떤 과정으로 파일을 복사하셨는지 등을 잘 모르면... ^^;

그래서 되도록이면 Mac OS X 용으로 배포되는 라이브러리들은 *.Framework 형으로 만들어 주면 훨씬 편하죠.

제로 링크 에러는 실행 모듈의 빌드가 Development 모드 (Debug 모드 라고 나오기도 함) 이기 때문입니다. 개발 과정에 있는 소프트웨어는 빈번한 컴파일이 필요하며, 프로그램의 자리가 옮겨지거나 외부로 돌아다녀야 할 필요가 없으므로 라이브러리 모듈을 일부러 빌드 시에 링크할 필요가 없습니다. 링크는 프로그램 실행시 그 모듈을 참조하는 순간에 이루어지게 됩니다. 이렇게 하면 프로그램을 빌드하는 시간이 상당히 많이 절약되기 때문에 개발하는 시간도 단축되는 효과를 볼 수 있습니다.

모든 개발 과정이 다 마치고 프로그램을 배포해야 할 순간이 되면 이제 컴파일 모드를 Deployment (혹은 Release) 모드로 놓고 컴파일을 합니다. 이 때에는 모든 라이브러리들이 다 링크되며, 시간도 좀 더 걸리고 실행파일 덩치도 커집니다. ^^

hongjuny님의 댓글

음... 위에 말씀은 제가 좀 삽질을 했군요. -_-;

라이브러리 파일을 Xcode 프로젝트에 링크해 넣으세요. External Frameworks and Libraries 라는 서브 폴더에 넣으시면 깔끔하게 정리도 되고 좋겠죠? 거기서 마우스 오른쪽 버튼 누르시고 Add->Existing Files 하셔서 라이브러리 파일을 넣으시면 됩니다.

전체 2,454 건 - 42 페이지