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 

EDIT: ライブラリファイルは、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

ライブラリの64ビット版をインストールしましたが不平を言っている何ですか? gccフラグを使用して32ビットコードもコンパイルするときに同じエラーが発生しますか? –

+0

@Jesus:EDITを参照してください。 –

+0

これはちょっと疑問に思えるかもしれませんが、ライブラリにあらかじめ組み込まれている.oファイルか、-lproj_apiを使う必要がある.soファイルですか?私はそれを聞いたことがないので、私は図書館がわからないので頼んでいる。 –

答えて

1

ライブラリとリンクする必要があります。

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

これは、エラーはおよそ

+0

それは私がちょうど言ったことです...とにかく... –

+0

ありがとう、それです! –

+0

@Jesus私は答えを投稿する前に私はあなたのコメントを見ていなかった、それはそれらの典型的なエラーの1つです。全体のフレームワークのアイデアは、-I、-L、-lオプションに沿っているので、外部ライブラリを使う方がずっと簡単です – Petesh