이 에러는 맥 OSX 10.6 Snow Leopard에서 macport를 통해 오픈소스 라이브러리들을 설치하고
이 라이브러리들을 이용하여 프로그래밍을 할 때 볼 수 있는 에러.

구체적으로 컴파일된 소스 파일들을 링크할 때 libGLEW.dylib 이라는 동적라이브러리 파일이
컴파일된 소스와 방식이 맞지 않음을 말한다.

즉, 소스 파일들은 32비트로 컴파일되었는데 libGLEW.dylib 라이브러리 파일은 64비트로만 컴파일되어서 링크가 안된다고 하는 것.

이와 관련된 자료가 인터넷에 있기는 하나 매우 소수이고--구글링해도 한페이지가 채 안된다-- 그 글을 잘 뜯어봐도 크게 도음을 받지 못하였다.

아무튼 원인은 macport 를 통하여 설치한 glew 라이브러리가 64비트로만 컴파일 된 게 문제.

시도 1. 구글링에서 찾은 방법을 적용해 봄.
/opt/local/etc/marports  폴더에 가보면 macports.conf 라는 환경설정 파일이 있다.
이것에 w 권한을 주고 관리자 권한으로 파일을 열어서 아래와 같이 수정

# Options for Universal Binaries (+universal variant)
universal variant
 
# machine architectures
universal_archs     x86_64 i386

이렇게 했는데 해결이 안됨.

시도 2. 소스를 64비트로 컴파일
한참의 삽질을 통해 컴파일된 환경(32비트, 64비트)이 맞지 않아 발생하는 것이라는 것을 알아내고는
소스를 64비트로 컴파일했더니 옘병~
가져다 쓰는 오픈 소스 중에서 3DS 파일을 읽을 수 있는 라이브러리가 제대로 동작을 안함.

시도 3. 해결!
macports로 glew를 다시 설치했는데 아래와 같이 했음

sudo port install glew +universal

macports.conf 파일을 수정할 필요 없이 위와 같이 하면 32/64비트로 컴파일이 되어서 문제가 해결됨.


Posted by unknowny
:

이 글은 jaeyoung님의 2007년 12월 24일의 미투데이 내용입니다.

Posted by unknowny
: