我在Mac 10.7上使用自制软件安装了proj.4库(使用gcc-4.2)。尝试编译以下代码时:
#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 :(得分:1)
你应该链接到图书馆。
gcc-4.2 test.c -L/usr/local/lib -lproj
这就是错误抱怨