2011-08-07 5 views
0

내 Mac 10.7 (gcc-4.2 사용)에서 homebrew와 함께 proj.4 라이브러리를 설치했습니다.Mac proj.4 컴파일 오류

#include <proj_api.h> 


int main(void) { 
    projPJ pj_merc; 
    pj_merc = pj_init_plus("+proj=merc"); 
    pj_free(pj_merc); 
    return 0; 
} 

나는이 오류 받고 있어요 :

$ gcc-4.2 test.c 
Undefined symbols for architecture x86_64: 
    "_pj_init_plus", referenced from: 
     _main in cccf4vey.o 
    "_pj_free", referenced from: 
     _main in cccf4vey.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

편집 : 라이브러리 파일이 64 비트가 (동일한 오류에 gcc-4.2 -m32 test.c 리드) 입니다 :

다음 코드를 컴파일하려고 할 때
$ file /usr/local/lib/libproj.dylib 
/usr/local/lib/libproj.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

어떤 아이디어가 잘못 되었나요?

감사합니다.

+0

을 불평 무엇인가? gcc 플래그를 사용하여 32 비트 코드도 컴파일 할 때 동일한 오류가 발생합니까? –

+0

@ Jesus : EDIT를 참조하십시오. –

+0

이것은 멍청한 질문 일지 모르지만 라이브러리 미리 빌드 된 .o 파일이거나 -lproj_api를 사용해야하는 .so 파일입니까? 내가 들어 본 적이 없으므로 도서관을 확신 할 수 없기 때문에 묻고있다. –

답변

1

라이브러리와 연결해야합니다.

gcc-4.2 test.c -L/usr/local/lib -lproj 

이 오류가 라이브러리의 64 비트 버전을 설치 않은 약

+0

그것이 내가 방금 말한 것입니다 ... 어쨌든 .... –

+0

고맙습니다. –

+0

@ Jesus 답변을 게시하기 전에 귀하의 의견을 보지 못했습니다. 외부 라이브러리를 사용하기 시작할 때 일반적인 오류 중 하나입니다. 전체 프레임 워크 아이디어는 -I, -L 및 -l 옵션을 따르기 때문에 외부 라이브러리를 훨씬 쉽게 사용합니다. – Petesh