【发布时间】:2011-10-21 18:03:51
【问题描述】:
我在我的 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
有什么想法吗?
谢谢!
【问题讨论】:
-
您是否安装了 64 位版本的库?使用 gcc 标志编译 32 位代码时是否也遇到同样的错误?
-
这可能是一个愚蠢的问题,但库是预先构建的 .o 文件还是必须使用 -lproj_api 的 .so 文件?我问是因为我不确定图书馆,因为我从未听说过。